2017-01-30 5 views
0

Я новичок в докере. У меня возникла проблема, когда я использую команду «docker-compose up -d», чтобы запустить многоконтейнерное приложение, которое должно запускать контейнеры со статусом «вверх», но все время выполнить команду статус «Выход», Я не уверен, если я делаю что-то неправильно, это мой докер-compose.yml файлDocker-compose не запускает контейнеры

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 

пример запуска:

[email protected]:/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 
[email protected]:/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 
    [email protected]:/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.

+0

Это могут быть ваши образы? Если изображения на самом деле не начинаются somethign (например, им нечего запускать, или что-то не работает), логическая задача для них - остановиться. – Nanne

+0

ОК. Изображения находятся на моей машине, я создал эти изображения, и когда я определяю изображение с именем, которое не существует, docker-compose дает мне сообщение с отсутствующими изображениями. – gleX

+0

Я не уверен, что вы имеете в виду. Выше выглядит совершенно нормально: прочитайте, например. http://stackoverflow.com/questions/28212380/why-docker-container-exits- немедленно. вполне возможно, что ваши изображения ничего не сделают, поэтому docker-compose запускает их по вашему желанию, но поскольку они ничего не делают, они выходят (со статусом '0', который является« без ошибок ») – Nanne

ответ

0

Я думаю, что я получил его: вы отменяя команду вы даете в dockerfile, потому что у вас есть эта линия в каждой из услуг

command: hostname 

так единственная команда, вы даете это «имя хоста», который на самом деле то, что выполняется.

Если вы запустите изображение с докером, вы, вероятно, используете совершенно другую команду!

Если это изображение на основе Linux, «имя хоста» будет просто печатать имя хоста, а затем выйти. Таким образом, команда прекращается, что логически приведет к остановленному контейнеру (выход 0)

Удалите командную команду, чтобы контейнеры фактически выполняли свои соответствующие команды.

Смежные вопросы