【发布时间】:2017-06-11 14:56:05
【问题描述】:
我想在php中使用localhost来指向mysql容器的ip而不是指向自己,这样我就可以使用mysql容器来获取数据了。
如何在我的 php 调用 mysql 中使用 localhost
$mysqli = new mysqli("localhost", "root", "examplepass", "set", 3306);
除非我使用 db 作为主机名,否则上述代码将不起作用。
db:
image: mariadb
container_name: mariadb
environment:
MYSQL_ROOT_PASSWORD: examplepass
www:
build: ./images/www
links:
- db:mysql
ports:
- 8080:80
我是否必须通过 Dockerfile 或撰写 yaml 以某种方式更改容器中的 hosts 文件?
【问题讨论】:
-
@rickdenhaan 并不是真的因为我希望它通过使用 localhost 而不是容器名称来引用另一个容器,所以我可以在需要访问另一个容器上的 mysql 的 php 脚本中使用 localhost。
-
是的,要实现这一点,您需要分别启动两个容器,而不是链接它们,正如该问题的已接受答案中所建议的那样。
-
@rickdenhaan 但随后 mysql 容器暴露在互联网上。我只希望 php 容器能够访问它。 (它说将端口暴露给主机)
标签: php docker containers docker-compose dockerfile