2016-09-02 2 views
10

Я пытаюсь сделать докеры с 1.12 на моем Mac. Я запустил 3 виртуальных виртуальных машины VirtualBox, создал кластер роя из 3 штук.докеры службы реплики остаются 0/1

[email protected]:~$ docker node ls 
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS 
2h1m8equ5w5beetbq3go56ebl redis3 Ready Active 
8xubu8g7pzjvo34qdtqxeqjlj redis2 Ready Active Reachable 
cbi0lyekxmp0o09j5hx48u7vm * redis1 Ready Active Leader 

Однако, когда я создать службу, я не вижу никаких ошибок пока реплики всегда отображает 0/1:

[email protected]:~$ docker service create --replicas 1 --name hello ubuntu:latest /bin/bash 
76kvrcvnz6kdhsmzmug6jgnjv 
[email protected]:~$ docker service ls 
ID   NAME REPLICAS IMAGE   COMMAND 
76kvrcvnz6kd hello 0/1  ubuntu:latest /bin/bash 
[email protected]:~$ docker ps 
CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS    PORTS    NAMES 

Что может быть проблема? Где искать журналы? Спасибо!

+0

Я столкнулся с той же проблемой, и когда я передал «верх» в мою команду, он работал очень хорошо. Что делает эта директива? Я не мог найти в руководствах. Благодаря! –

ответ

13

Проблема в том, что ваши задачи (вызов bin/bash) быстро завершаются, так как ничего не делают.

Если вы посмотрите на задачи своей службы, вы увидите, что один из них запущен, а затем выключен в течение нескольких секунд. Затем запускается другой, завершение работы и т. Д., Так как вас просят, чтобы 1 задача выполнялась постоянно.

docker service ps hello 

Если вы используете ubuntu:latest top, например, задача будет оставаться работать.

+0

Вот и все. Я действительно подумал об этом вчера вечером и собирался обновиться. Но спасибо вам большое за то, что вы посмотрели и указали на это. – Samar

+0

Этот маленький кончик отладки супер полезно – joshmcode

+1

Чтобы сохранить контейнер работает и не делать много вы можете также использовать '' ' докер запустить альпийской хвост -f/DEV/нуль ' '' Это в основном запускает 'alpine' контейнер и ничего не наблюдая (/ dev/null). Это будет жевать минимальный процессор. Запуск контейнера в «режиме ожидания» полезен, если вы хотите, чтобы «docker exec» в него позже осматривал тома, сеть и т. Д. – Alkaline

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