docker 安装mysql

1、 拉取最新的数据库镜像

docker pull mysql:latest

        

 

 

2、 查看是否安装成功

docker images

  

 

 

 3、 启动镜像

docker run -p 33306:3306 --name mysql-docker -e MYSQL_ROOT_PASSWORD=Ldm_root -d mysql 

        

 

 

此时镜像已经启动

如果远程连接的时候出现”Unknown error“

需要在控制端开放”3306“端口

  

 

 

 此时再次测试链接:

  

中途异常:

  1、 启动镜像的时候异常,异常情况如下: 

  错误信息:

docker: Error response from daemon: driver failed programming external connectivity on endpoint mysqldb (47c461a304f355052b2ca603dea09622dcb660c59c840d67ed285e236b44cf28):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 3306 -j DNAT --to-destination 172.17.0.4:3306 ! -i docker0: iptables: No chain/target/match by that name.
 (exit status 1)).
ERRO[0034] error waiting for container: context canceled

  原因:docker服务启动时定义的自定义链DOCKER由于 centos7 firewall 被清掉

      firewall的底层是使用iptables进行数据过滤,建立在iptables之上,这可能会与 Docker 产生冲突。

                  当 firewalld 启动或者重启的时候,将会从 iptables 中移除 DOCKER 的规则,从而影响了 Docker 的正常工作。

                  使用的是 Systemd 的时候, firewalld 会在 Docker 之前启动,但是如果你在 Docker 启动之后再启动 或者重启 firewalld ,你就需要重启 Docker 进程了。

解决方式:

  重启dockers:

systemctl restart docker

  重启原来项目:

docker restart 镜像id

  然后重新启动该镜像

 

posted @ 2022-07-11 16:34  独丨恋  阅读(38)  评论(0编辑  收藏  举报