2016-05-26 152 views
0

我有一个SQL数据库成功运行。但是,我无法在我的SQL客户端中访问它。无法访问Docker容器内的SQL数据库

docker run -it --name sql_key_container -e MYSQL_ROOT_PASSWORD=testpw -e MYSQL_DATABASE=key_volume -p 3306:3306 -d myimgname/ubuntumaria:0.2 

我验证它是由docker exec fcd12bf1da81 /etc/init.d/mysql status

运行我映射3306 - > 3306,并使用主机的IP。仍然超时。这可能是什么?

回答

0

你现在有容器fcd12bf1da81运行的数据库,在端口3306

监听本地IP地址和主机上的IP如果你想让你的新容器sql_key_container访问该数据库,然后将容器需要访问fcd12bf1da81

您需要--link

docker run -it --link fcd12bf1da81:mydb --name sql_key_container -e MYSQL_ROOT_PASSWORD=testpw -e MYSQL_DATABASE=key_volume -p 3306:3306 -d myimgname/ubuntumaria:0.2 

,现在你可以用mydb:3306访问容器内的分贝。

+0

甚至没有另一个容器,只是我的本地机器 –

+0

然后是同样的问题。本地主机上的'localhost'为'127.0.0.1',但不在您的容器中。您需要确保您的mysql在0.0.0.0上进行侦听,并且您需要向容器提供来自网络主机的IP地址,以便容器可以访问。容器内的'localhost'是容器内的接口,对于所有不会发布到外部的端口和服务... – CFrei