2017-02-17 9 views
1

Q. Как запустить докер-компоновать в режиме открепленияDocker сочинить отдельностоящий режим не работает

Я пытаюсь запустить докер-компоновать в режиме открепления но будет выходит после того, как только он запущен, но я могу запускать одно и то же изображение в режиме отсоединения с помощью команды «docker run».

  • Выполнить изображение с помощью 'Docker запустить' команда (работает в режиме открепления)

    docker run -itd ubuntu:16.04 
    

    ниже вывод команды 'Docker PS -a'

    CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS      PORTS    NAMES 
    d84edc987359  ubuntu:16.04  "/bin/bash"   4 seconds ago  Up 3 seconds         romantic_albattani 
    
  • Run то же изображение с помощью команды «docker-compose up -d» (не работает в режиме отсоединения)

    ниже моего докер-compose.yml файл

    команда
    version: '3' 
    services: 
    ubuntu: 
        image: ubuntu:16.04 
    

    'Докер-Compose пс' выход

      Name    Command State Ports 
    ---------------------------------------------------- 
    composetesting_ubuntu_1 /bin/bash Exit 0 
    

Update: При использовании TTY: истинный параметр в docker- compose.yml, как указано ниже

version: '3' 
services: 
ubuntu: 
    image: ubuntu:16.04 
    tty: true 

, тогда консоль не будет выполнять какую-либо команду, например, если я нажму «ls -l», консоль консоли не ответит.

ответ

4

Я просто должен был добавить TTY: истинный к моему Докер-compose.yml

version: '2' 
    services: 
     ubuntu: 
     image: ubuntu:16.04 
     tty: true 

Docker версия 1.12.5, построить 7392c3b

докер-версия 1.7.1 создания сообщения, строить 0a9ab35

+0

Да, это работает, но как. здесь 'tty: true' также не является частью документации https://docs.docker.com/compose/compose-file/. Большое спасибо :) –

+1

@AnandSuthar Эта ссылка подходит для составления формата версии 3 - обратите внимание, что этот пример - версия 2; этот документ включает 'tty'. https://docs.docker.com/compose/compose-file/compose-file-v2/ –

+0

@AnandSuthar И, чтобы ответить на ваш вопрос, 'tty: true' просто эмулирует tty, то же самое' docker run -t' (как используется в вашем примере в вопросе). Когда присутствует tty, оболочка будет работать, если она находится в отключенном режиме; без tty, он не найдет ничего другого и не выйдет. –

0

Выше @ littletile42 ответ правильное отношение к моему вопросу. Но только с использованием параметра «tty: true» пользователь не сможет выполнить какую-либо команду, поэтому, если вы также хотите выполнить или взаимодействовать с консолью, также следует использовать параметр 'stdin_open: true'.

version: '2' 
services: 
    ubuntu: 
    image: ubuntu:16.04 
    tty: true 
    stdin_open: true 

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

  • Нет связанных вопросов^_^