2

我正在学习如何使用 Docker,并且正在使用 Centos+PHP+MySQL 设置一个带有前端和后端的简单应用程序。

我有我的机器:“示例”

在机器“示例”中,我配置了 2 个 docker 容器:

frontend:
  build: ./frontend
  volumes:
    - ./frontend:/var/www/html
    - ./infrastructure/logs/frontend/httpd:/var/logs/httpd
  ports:
    - "80"
  links:
    - api
api:
  build: ./api
  volumes:
    - ./api:/var/www/html
    - ./infrastructure/logs/api/httpd:/var/logs/httpd
  ports:
    - "80"
  links:
    - mysql:container_mysql

我面临的问题是当我访问 docker 容器时,我需要为 FRONTEND (32771) 或 BACKEND (32772) 指定端口号。

这是正常的还是有办法为应用程序的 API 和前端创建主机名?

这在部署到 AWS 时如何工作?

提前致谢。

4

1 回答 1

0

如果您正在运行 docker 1.9 或 1.10,并使用 2.0 格式docker-compose.yml,您可以通过它们的“服务”名称或“容器”名称直接访问其他服务。请参阅我对这个问题的回答,其中有一个基本示例来说明这一点;https://stackoverflow.com/a/36245209/1811501

因为服务之间的连接是通过私有容器-容器网络,你不需要使用随机分配的端口,所以如果一个服务发布/暴露80端口,你可以简单地通过80端口连接

于 2016-03-28T20:23:50.330 回答