我正在学习如何使用Docker,我正在使用Centos + PHP + MySQL设置一个使用Frontend和Backend的简单应用程序。
我有我的机器: "例如"
在机器"示例"我配置了2个泊坞容器:
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时起作用?
提前致谢。
答案 0 :(得分:0)
如果你正在运行docker 1.9或1.10,并使用2.0格式的docker-compose.yml
,你可以通过他们的"服务"直接访问其他服务。名称,或"容器"名称。请参阅我在这个问题上的答案,其中有一个基本的例子来说明这一点; https://stackoverflow.com/a/36245209/1811501
由于服务之间的连接通过私有容器 - 容器网络,您不需要使用随机分配的端口,因此如果服务发布/公开端口80,您只需通过端口80连接