我之所以来找你,是因为我有一个问题,我什至不知道从哪里开始解决。
实际上,我有3个必须彼此通信的图像泊坞窗。
前端的图像,必须与后端的图像进行通信,该图像也必须与我的数据库的图像进行通信(MySQL )。
当我输入http://localhost:9090时,我想访问我的前端,该前端应该与后端通信,该后端必须通过与数据库。
我查看了docker-compose文档,但他们解释了docker-compose关键字,而没有示例说明如何解决此类问题。
如果您有很好的教程,博客或代码说明如何解决我的问题,请帮助我。
答案 0 :(得分:1)
您可以构建一个docker-compose.yml来做到这一点:
version: '2'
services:
database:
image: <image>:<tag>
container_name: database
restart: unless-stopped
backend:
image: <image>:<tag>
container_name: backend
restart: unless-stopped
volumes:
links:
- database
frontend:
image: <image>:<tag>
container_name: frontend
restart: unless-stopped
links:
- backend
ports:
- "9090:9090" # the first port is what your app listens on
然后运行docker-compose up
答案 1 :(得分:0)
谢谢您的回答。我测试了您的解决方案是否有效,但是有必要像这样暴露图像后端和数据库的所有端口:
version: '2'
services:
database:
image: data
container_name: database
restart: unless-stopped
ports:
- "3306:3306"
backend:
image: backend
container_name: backend
restart: unless-stopped
links:
- database
ports:
- "8090:8090"
- "8091:8091"
- "8092:8092"
frontend:
image: frontend
container_name: frontend
restart: unless-stopped
links:
- backend
ports:
- "9090:9090"
并且如果我在浏览器中键入URL后端,例如localhost:8090,则该URL会回答我,而我想一定要经过前端以访问后端。
所以对我来说,想法是后端和数据库的端口只能在docker-compose内部可见,但是我不知道如何使用docker-compose
预先感谢您的帮助。