【发布时间】:2019-01-15 15:03:13
【问题描述】:
我有几个 php 服务器,我们将它们命名为 api1、api2。我已经设置了 docker-compose 文件,它成功地与 nginx 链接运行它们,因此它们可以从主机访问并且工作正常。
这是我的 docker-compose.yml 的示例:
version: "3.5"
services:
nginx:
user: "root:root"
image: nginx:stable
container_name: nginx
ports:
- "80:80"
- "443:443"
volumes:
- ./cert:/etc/nginx/ssl/
- ./vhosts/:/etc/nginx/conf.d/:cached
- ./logs/nginx:/var/log/nginx:cached
- ${ACCOUNT_PATH}:/var/www/api1:cached
- ${ACCOUNT_API_PATH}:/var/www/api2:cached
api1:
image: php-fpm-image
build:
context: "."
dockerfile: "./images/api1/Dockerfile"
user: "root:root"
container_name: account
working_dir: /var/www/api1/
volumes:
- api1path/:/var/www/api1
api2:
image: php-fpm-image
build:
context: "."
dockerfile: "./images/api2/Dockerfile"
user: "root:root"
container_name: api2
working_dir: /var/www/api2/
volumes:
- api2:/var/www/api2:cached
networks:
default:
name: domain.com
driver: bridge
与这个用于功能测试的 docker-compose 文件有关:
version: '3.5'
services:
apitests:
image: apitests:latest
container_name: api_tests
volumes:
- ./config/:/opt/project/config/
- ./test_reports/screenshots:/root/.selene/screenshots/
networks:
default:
driver: bridge
external:
name: domain.com
主机可以访问下一个域:
api1.domain.com 127.0.0.1
api2.domain.com 127.0.0.1
我的问题是如何在 docker 中直接连接它们,因为我需要从 api1 到 api2,apitests 到 api1,api2 的请求。
当我请求时,他们的域直接解析到他们的容器,所以我收到下一个错误
无法连接到远程主机 (172.21.0.8):连接被拒绝
来自任何容器。
如您所知,我需要将他们的域解析为 NGINX 容器,这样它才能正常工作,并且 php-fpm 可以通过 nginx 将结果返回给我。
我怎样才能做到这一点?
【问题讨论】:
标签: php docker nginx docker-compose containers