centos8使用docker安装mysql8.0.17

  |  

拉取镜像
docker pull mysql:8.0.17
使用 docker images 查看镜像文件

现在自己的服务器上依次创建/data/docker/mysql 文件夹,用于挂载外部配置和数据

启动(注释的代码不要)

1
2
3
4
5
6
7
docker run -d --restart=always \ // 开机启动
-v /data/docker/mysql/data:/var/lib/mysql \ // 将容器的 /var/lib/mysql目录挂载到主机/data/docker/mysql/data目录。
-v /data/docker/mysql/config/my.cnf:/etc/mysql/conf.d \ //映射配置文件
-e MYSQL_ROOT_PASSWORD=123456 \ //密码
-p 3306:3306 \ // 将容器的3306端口映射到主机的3306端口
--name mysql \ // MySQL容器名称
mysql:8.0.17 // 后台运行容器
1
2
3
4
5
6
7
docker run -d --restart=always \
-v /data/docker/mysql/data:/var/lib/mysql \
-v /data/docker/mysql/config/my.cnf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 \
--name mysql \
mysql:8.0.17

运行成功 会在 /data/docker/mysql 文件夹 创建 config 和 data 文件夹 ,里面都有东西

使用镜像进入 mysql
$:docker exec -it mysql bash
$:mysql -u root -p (会提示输入密码)
成功就会进入数据库
在这里插入图片描述
初始化 MySQL,不然用 navicat 连接不了 mysql 数据库
$:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
$:flush privileges;

(可选)设置时间
$:set global time_zone = ‘+8:00’;
set time_zone = ‘+8:00’;
flush privileges;
select curtime();
在这里插入图片描述

docker 出现错误

Error response from daemon: driver failed programming external connectivity on endpoint mysql (a29d3409d7b1f5eaf8706050f4aeed7b11fa90415d243239a0c882eeb9fb83be): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 3306 -j DNAT --to-destination 172.17.0.5:3306 ! -i docker0: iptables: No chain/target/match by that name.
Docker 容器做端口映射报错,docker 服务启动时定义的自定义链 DOCKER 被清除;重启即可
systemctl restart docker

文章目录
  1. 1. docker 出现错误