首页 > 解决方案 > 有没有办法在没有 docker-swarm-mode 的情况下使用 docker-compose 文件连接 2 个 docker

问题描述

我想使用 Docker 运行 webapp 和 db,有没有办法使用 docker-compose 文件连接 2 个 docker(一台机器中的 webApp Docker 容器和另一台机器中的 DB Docker 容器)我的意思是 2 个单独的服务器这是我的 Mongodb docker-compose 文件

version: '2'
services:
  mongodb_container:
    image: mongo:latest
    restart: unless-stopped
    ports:
      - 27017:27017
    volumes:
      - mongodb_data_container:/data/db

这是我的 demowebapp docker-compose 文件

version: '2'

services:
  demowebapp:
    image: demoapp:latest
    restart: unless-stopped
    volumes:
      - ./uploads:/app/uploads
    environment:
      - PORT=3000
      - ROOT_URL=http://localhost
      - MONGO_URL=mongodb://35.168.21.133/demodb
    ports:
      - 3000:3000

任何人都可以建议我怎么做

标签: dockerdocker-compose

解决方案


仅使用一个docker-compose.yml与 composeversion: 2没有办法在两台不同的机器上部署 2 个服务。这就是version: 3使用 astack.yml和 swarm-mode 的目的。

但是,您可以使用两个版本 2 部署到两台不同的机器docker-compose.yml,但必须使用与 compose-file 中的服务名称不同的主机名/ips 来连接它们。


推荐阅读