docker 中容器通过 API 互相访问
在使用 laradock
当作开发环境的时候,遇到一个问题。不同项目在 docker
内 使用 API 互相访问的时候,因为 php 代码实际是在 php-fpm
容器内执行,通过 API 方式调用另一个项目的时候,会走到 nginx
容器,就存在跨容器调用的问题。一开始的解决方法是在 php-fpm
容器的配置项 extra_hosts
中添加项目的 host 指定 nginx 容器 IP test.loc:172.18.0.3
会存在一个问题,nginx 重启后可能会存在 IP 变化的问题,这样就需要修改 php-fpm 的 extra_hosts 配置,再重启 php-fpm 容器,比较麻烦。
查了一下,有另一方案,在 nginx 的配置项的 networks
的网络配置下面添加 host 配置就行。类似这样
networks:
frontend:
aliases:
- test.loc
即可解决。
可添加多行 host。
原理没细研究,差不多是把 frontend
网络配置了多个别名,这样在不同的容器内就都可以访问 nginx 的网络了。
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: