将多个docker图像分组为一个图像,并让它们进行通信

将多个docker图像分组为一个图像,并让它们进行通信,docker,docker-compose,Docker,Docker Compose,我来找你是因为我有一个问题,我甚至不知道从哪里开始解决它 事实上,我有3个图像码头工人,他们必须相互沟通 前端的映像必须与后端的映像通信,后端的映像也必须与我的数据库(MySQL)的映像通信 当我输入:9090时,我想访问我的前端,它应该与后端通信,后者必须通过与数据库交互来回答我 我看了docker compose文档,但他们解释说docker compose关键字没有一个示例说明如何解决我的问题 如果您有很好的教程、博客或代码来说明如何解决我的问题,请帮助我。您可以构造一个docker-co

我来找你是因为我有一个问题,我甚至不知道从哪里开始解决它

事实上,我有3个图像码头工人,他们必须相互沟通

前端的映像必须与后端的映像通信,后端的映像也必须与我的数据库(MySQL)的映像通信

当我输入:9090时,我想访问我的前端,它应该与后端通信,后者必须通过与数据库交互来回答我

我看了docker compose文档,但他们解释说docker compose关键字没有一个示例说明如何解决我的问题


如果您有很好的教程、博客或代码来说明如何解决我的问题,请帮助我。

您可以构造一个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
版本:“2”
服务:
数据库:
图片::
容器名称:数据库
重新启动:除非停止
后端:
图片::
容器名称:后端
重新启动:除非停止
卷数:
链接:
-数据库
前端:
图片::
容器名称:前端
重新启动:除非停止
链接:
-后端
端口:
-“9090:9090”#第一个端口是应用程序监听的端口

然后运行docker compose up

谢谢您的回答。我测试了您的解决方案,它工作正常,但有必要公开映像后端和数据库的所有端口,如下所示:

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实现这一点

提前感谢您的帮助。

您看过这个吗?