从Mysqlworkbench连接到MySQL容器

从Mysqlworkbench连接到MySQL容器,mysql,docker,Mysql,Docker,我从一个映像构建了一个MySQL容器,找到了它的IP地址,但无法从命令行或mysqlworkbench进行连接。这是我的配置 Dockerfile FROM mysql ENV MYSQL_DATABASE=test ENV MYSQL_ROOT_PASSWORD=password COPY ./schema.sql /docker-entrypoint-initdb.d/ 命令 docker build -t mysql-image . && docker run -p

我从一个映像构建了一个MySQL容器,找到了它的IP地址,但无法从命令行或mysqlworkbench进行连接。这是我的配置

Dockerfile

FROM mysql

ENV MYSQL_DATABASE=test
ENV MYSQL_ROOT_PASSWORD=password

COPY ./schema.sql /docker-entrypoint-initdb.d/
命令

docker build -t mysql-image .
&& docker run
-p 6603:3306
--name mysql-container
mysql-image 
我可以看到容器正在从
docker container ls
运行。在这个命令的帮助下,我使用这个命令找到了它的IP地址

它给了我这个ip->172.17.0.2

错误

编辑

链接的重复标记不是解决方案,问题在于下面的命令误导了我

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql-container

您需要使用
localhost
(127.0.0.1),而不是
主机名处的容器IP(在您的示例中为172.17.0.2)

您的phpmyadmin工作吗?检查一下,我没有phpmyadmin,我的环境是nodejsys本地主机工作,实际上是127.0.0.1的可能副本,我想你需要phpmysql来查看mysql接口。。。如果没有,请检查您的mysql端口号(默认值为3306),因此在您的情况下,尝试127.0.0.1:3306为什么,我遵循的教程使用172作为ip,对他有效,但对我来说127有效,想知道为什么?那么我应该在db连接的生产代码中添加什么呢?这里有一些解释,(在答案的末尾)所以基本上127是主机模式,172是桥接模式?诸如此类,我还不是docker方面的专家,我不能说是,但看起来是这样的。
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql-container