amazon-web-services - 前端和后端应用程序的 Docker 示例

我正在学习如何使用 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 时如何工作?

提前致谢。

最佳答案

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

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

https://stackoverflow.com/questions/36268475/

相关文章:

docker - dnsmasq 跨 docker 容器的奇怪行为

docker - 将 git 命令的结果存储在 ENV 中

docker - 由 Docker 复制的文件被视为目录

apache - 如何在docker中以标准方式停止solr

docker - Docker yum安装问题-无法为存储库检索metalink:epel/x86_

postgresql - 使用Docker容器和主机LAN的Postgres网络

docker - Godep无法在Docker容器中工作

jenkins - 使用具有马拉松和Mesos的持久卷在docker内部运行jenkins的权限错误

docker - Docker Compose YAML版本1和版本2有什么区别?

azure - 通过远程 api 设置 Docker Volume Driver 选择