从其他容器访问MySQL容器

我已经设置docker容器与MySQL揭露3306.我已经指定数据库用户,数据库密码,并创build一个testing数据库,并授予新用户的权限。
在另一个容器中,我想访问这个数据库。
所以我build立了一个简单的PHP脚本新的容器,在这个数据库中创build新的表。
我知道,MySQL的容器的IP是172.17.0.2所以:

$mysqli = new mysqli("172.17.0.2", "mattia", "prova", "prova"); 

比使用mysqli我创build新的表,一切正常。
但我认为使用他的IP地址连接到容器并不好。
有没有另一种方式来指定数据库主机? 我尝试了与MySQL容器的主机名,但它does not工作。

您需要将docker容器与docker run命令中的–link标志链接在一起,或者使用docker-compose中的链接function。 例如:

 docker run -d -name app-container-name --link mysql-container-name app-image-name 

通过这种方式,docker会将mysql容器的IP地址添加到应用程序容器的/ etc / hosts文件中。 有关完整的文档,请参阅: MySQL Docker容器:了解基础知识

我刚刚检查了我的docker容器,我可以使用主机名ping其他泊坞窗。

从图像运行docker容器时:

 docker run -d --name mysqlcontainername imagename 

你只知道mysql容器的docker容器的名字。

所以请尝试:

访问PHPdocker集装箱。

 cat /etc/hosts 172.17.0.2 namemysqlcontainer ping namemysqlcontainer 

所以我认为你可以使用mysqlcontainer的主机名为PHP脚本