Docker:为什么Docker compose没有启动其他容器



这是我的docker-compose.yml文件


version: "3.9"
services: 
  mongodb:
    image: mongo 
    ports:
      - "27017:27017"
    environment: # environmental variables
      - MONGO_INITDB_ROOT_USERNAME=admin
      - MONGO_INITDB_ROOT_PASSWORD=password
  mongo-express:
    image: mongo-express
    ports:
      - "8081:8081"
    environment:
      - ME_CONFIG_MONGODB_ADMINUSERNAME=admin
      - ME_CONFIG_MONGODB_ADMINPASSWORD=password
      - ME_CONFIG_MONGODB_SERVER=mongodb

当我运行up命令时

docker compose up

mongodb正在运行,但mongo-express没有运行,在日志中我看到一条消息,上面写着:

app-mongo-express-1 exited with code 0

当我运行ps命令时,我只看到一个容器在运行:

CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                      NAMES
562b810882b6   mongo     "docker-entrypoint.s…"   2 minutes ago   Up 2 minutes   0.0.0.0:27017->27017/tcp   app-mongodb-1

为什么mongo express没有运行?

我认为您没有添加mongodb和mongoexpress之间的依赖关系。您需要在mongo express下添加dependens_on。当然,由于mongoexpress无法连接到mongodb,它失败了,并添加了重新启动:始终到mongoexpress

version: "3.9"
services: 
  mongodb:
    image: mongo 
    ports:
      - "27017:27017"
    environment: # environmental variables
      - MONGO_INITDB_ROOT_USERNAME=admin
      - MONGO_INITDB_ROOT_PASSWORD=password
  mongo-express:
    image: mongo-express
    restart: always
    ports:
      - "8081:8081"
    depends_on:
      - mongodb
    environment:
      - ME_CONFIG_MONGODB_ADMINUSERNAME=admin
      - ME_CONFIG_MONGODB_ADMINPASSWORD=password
      - ME_CONFIG_MONGODB_SERVER=mongodb
      - ME_CONFIG_MONGODB_ENABLE_ADMIN=true

最新更新