【发布时间】:2018-06-26 07:58:15
【问题描述】:
创建 docker 网络后,我在 docker 容器中运行了我的 mysql。
docker network create --subnet=172.19.0.0/16 network-name
docker run -p 3306:3306 --net network-name --ip 172.19.0.13 -e MYSQL_ROOT_PASSWORD=password -d
然后当我尝试使用命令连接到本地的 mysql 时
mysql -uroot -p,我收到错误消息 (Error 2002 (HY000): Can't Connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2))
然后我用命令mysql -u root -p -h 172.19.0.13成功了
我以为我将本地主机端口 3306 与 docker 容器的 3306 端口连接起来。 为什么我无法通过 localhost 端口连接到 mysql?
【问题讨论】:
-
如果你在没有
--net标志的情况下运行会发生什么? -
你能发布
docker ps和docker port <mysql_container_id>的输出吗? -
因为你创建了私网!
-
你真的需要在私有 docker 网络中运行吗?否则,请从您的命令中删除 --net