Docker compose不启动容器

Docker compose不启动容器,docker,docker-compose,Docker,Docker Compose,我是docker compose的新手。当我使用命令“docker compose up-d”启动多容器应用程序时,我遇到了一个问题,应该如何启动状态为“up”的容器,但每次执行命令时,状态都是“Exit”,我不确定我是否做错了什么,这是我的docker-compose.yml文件 version: '3' services: catalog: image: ciscatalog hostname: catalogHost command: hostname

我是docker compose的新手。当我使用命令“docker compose up-d”启动多容器应用程序时,我遇到了一个问题,应该如何启动状态为“up”的容器,但每次执行命令时,状态都是“Exit”,我不确定我是否做错了什么,这是我的docker-compose.yml文件

version: '3'

services:   catalog:
     image: ciscatalog
     hostname: catalogHost
     command: hostname
     volumes:
       - /home/docker:/opt/host

  container:
    image: dis/ciscontainer
    hostname: containerHost
    command: hostname
    volumes:
      - /home/docker:/opt/host


  inbound:
    image: dsi/cisinbound
    hostname: inboundHost
    depends_on:
      - catalog
    links:
      - catalog
    command: hostname
    volumes:
      - /home/docker:/opt/host


  outbound:
    image: dsi/cisoutbound
    hostname: outboundHost
    depends_on:
      - catalog
    links:
      - catalog
    command: hostname
    volumes:
      - /home/docker:/opt/host
运行示例:

 root@docker1:/home/docker/DSI# docker-compose scale catalog=3 container=4  inbound=1   outbound=1
    Creating and starting dsi_catalog_1 ... done
    Creating and starting dsi_catalog_2 ... done
    Creating and starting dsi_catalog_3 ... done
    Creating and starting dsi_container_1 ... done
    Creating and starting dsi_container_2 ... done
    Creating and starting dsi_container_3 ... done
    Creating and starting dsi_container_4 ... done
    Creating and starting dsi_inbound_1 ... done
    Creating and starting dsi_outbound_1 ... done
root@docker1:/home/docker/DSI# docker-compose up -d
Starting dsi_container_4
Starting dsi_catalog_3
Starting dsi_catalog_1
Starting dsi_container_3
Starting dsi_catalog_2
Starting dsi_container_1
Starting dsi_outbound_1
Starting dsi_inbound_1
Starting dsi_container_2
   root@docker1:/home/docker/DSI# docker-compose ps
         Name         Command    State    Ports
    -------------------------------------------
    dsi_catalog_1     hostname   Exit 0
    dsi_catalog_2     hostname   Exit 0
    dsi_catalog_3     hostname   Exit 0
    dsi_container_1   hostname   Exit 0
    dsi_container_2   hostname   Exit 0
    dsi_container_3   hostname   Exit 0
    dsi_container_4   hostname   Exit 0
    dsi_inbound_1     hostname   Exit 0
    dsi_outbound_1    hostname   Exit 0

拜托,有人能帮我吗?docker compose 1.13版。

我想我明白了:您正在重写docker文件中给出的命令,因为您在每个服务中都有这一行

command: hostname
因此,您给出的唯一命令是“hostname”,它实际上是运行的

如果您使用docker运行图像,那么您可能正在运行一个完全不同的命令

如果这是一个基于linux的映像,“hostname”将只打印主机名,然后退出。因此,命令停止,这在逻辑上会导致容器停止(退出0)


删除命令覆盖,使容器实际运行各自的命令。

可能只是您的图像吗?如果图像实际上没有启动某些内容(例如,它们没有要运行的内容,或者任何运行停止的内容),那么它们要做的合乎逻辑的事情就是停止。OK。这些图像在我的机器中,我创建了那个些图像,当我定义一个名称不存在的图像时,docker compose会给我一条并没有现有图像的消息。我不确定你们的意思。上面看起来完全正常:阅读例如。很可能是您的图像什么都不做,所以docker compose会根据您的请求启动它们,但由于它们什么都不做,它们会退出(状态为“无错误”)。我的意思是,这是我自己的图像,当我在docker-compose.yml中定义一个不存在的图像时,docker compose会给出一个错误。如果使用命令“docker run…”运行这些图像,它们会完美运行,并且使用“docker start”时,状态为“up”,因此,图像存在。