从另一个容器连接到 MySQL 容器
您已经设置了一个运行 MySQL 并公开端口 3306 的 Docker 容器,但是如何才能您从另一个容器访问该数据库吗?
使用 IP 地址
最初,您尝试使用 MySQL 容器的 IP 地址 (172.17.0.2) 进行连接。虽然这种方法可行,但并不理想,因为 IP 地址可能会更改。
用户定义的网络
更好的方法是使用用户定义的网络来连接容器。您可以创建一个网络并将 MySQL 和 PHP 容器附加到其上。
docker network create my_network
链接容器
在以下位置运行两个容器同一网络,使用 --network 标志提供网络名称:
docker run -d --name php_container --network my_network my_php_image docker run -d --name mysql_container --network my_network my_mysql_image
在该网络上的容器中,您可以解析容器名称并使用主机名进行连接。例如,从 PHP 容器,您可以使用以下方式连接到 MySQL:
$mysqli = new mysqli("mysql_container", "mattia", "prova", "prova");
结论
用户定义的网络提供了一种更强大、更灵活的方式来连接 Docker 中的容器。使用容器名称作为主机名可以简化访问并消除对 IP 地址的依赖。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3