运行容器会停止另一个容器

问题描述 投票:0回答:1

我已经创建了两个基本MEAN堆栈应用,它们具有一个公共数据库(mongo db)。我还为这些应用程序构建了docker。

问题:

[当我使用]启动平均堆栈容器(example-app-1)时>

docker-compose up -d --build

容器运行平稳,我也可以点击容器并在本地查看我的页面。

[当我尝试使用]启动另一个平均堆栈容器(example-app-2)时>

docker-compose up -d --build

我以前的容器已停止,当前容器正常工作,没有任何缺陷。

必填:

我希望这两个容器都使用共享数据库同时运行。我需要帮助来实现这一目标。

docker-compose.yml示例应用程序-1

version: '3'

services:
  example_app_1:
    build:
      dockerfile: dockerfile
      context: ../../
    image: example_app_1:1.0.0

  backend:
    image: 'example_app_1:1.0.0'
    working_dir: /app/example_app_1/backend/example-app-1-api
    environment:
      - DB_URL=mongodb://172.17.0.1:27017/example_app_1
      - BACKEND_PORT=8888
      - BACKEND_IP=0.0.0.0
    restart: always
    ports:
      - '8888:8888'
    command: ['node', 'main.js']
    networks: 
      - default
    expose:
      - 8888
  frontend:
    image: 'example_app_1:1.0.0'
    working_dir: /app/example_app_1/frontend/example_app_1
    ports:
      - '5200:5200'
    command: ['http-server', '-p', '5200', '-o', '/app/example_app_1/frontend/example-app-1']
    restart: always
    depends_on:
      - backend
networks:
  default:
    external:
      name: backend_network

示例应用程序2的docker-compose.yml

version: '3'

services:
  example-app-2:
    build:
      dockerfile: dockerfile
      context: ../../
    image: example_app_2:1.0.0

  backend:
    image: 'example-app-2:1.0.0'
    working_dir: /app/example_app_2/backend/example-app-2-api
    environment:
      - DB_URL=mongodb://172.17.0.1:27017/example_app_2
      - BACKEND_PORT=3333
      - BACKEND_IP=0.0.0.0
    restart: always
    networks:
      - default
    ports:
      - '3333:3333'
    command: ['node', 'main.js']

    expose:
      - 3333
  frontend:
    image: 'example-app-2:1.0.0'
    working_dir: /app/example_app_2/frontend/example-app-2
    ports:
      - '4200:4200'
    command: ['http-server', '-p', '4200', '-o', '/app/example_app_2/frontend/example-app-2
    restart: always
    depends_on:
      - backend
networks:
  default:
    external:
      name: backend_network

enter image description here

我已经创建了两个基本MEAN堆栈应用,它们具有一个公共数据库(mongo db)。我还为这些应用程序构建了docker。问题:当我使用docker-compose ...

node.js docker docker-compose mean-stack docker-networking
1个回答
0
投票

docker-compose将创建名为project_service的容器。默认情况下,该项目来自目录的最后一个组件。因此,当您启动第二个docker-compose时,它将停止具有这些名称的容器,并启动新的容器。

[将这两个docker-compose文件移动到单独的目录中,以便容器名称不同,或者使用包含单独项目名称的--project-name标志运行docker-compose,以便可以使用不同的名称启动容器。

© www.soinside.com 2019 - 2024. All rights reserved.