2016-11-30 5 views
1

Я наблюдаю ниже ошибки, пока я выполнить следующую командуответ Ошибка от демона: Контейнер f88566c370dd не работает

CMD используется- docker exec -it f88566c370dd /bin/bash
ошибка observed- Error response from daemon: Container f88566c370dd is not running
То, что я doing- Попытка выполнить рецепт шеф-повара из VM, чтобы вытащить изображения и ром три контейнера Centos.

Шеф-recipe-

# 
# Cookbook Name:: chef-docker 
# Recipe:: default # 
# Copyright 2016, SONATA_SOFTWARE # 
# All rights reserved - Do Not Redistribute 
# 
docker_service 'default' do 
    action [:create, :start] 
end 

# Pull latest image 
docker_image 'centos' do 
    tag 'latest' 
    action :pull 
end 

# Run container 
docker_container 'first' do 
    repo 'centos' 
    command 'ls -la /' 
    end 

    docker_container 'second' do 
    repo 'centos' 
    command 'ls -la /' 
    end 

    docker_container 'third' do 
    repo 'centos' 
    command 'ls -la /' 
    end 

Команда, используемая в VM для выполнения рецепт шеф

chef-client -r recipe[chef-docker::Default] 

Ожидаемый результат: Установка программного обеспечения, таких как Java, Python и инструментов, таких как Дженкинс, котом в контейнеры

[[email protected] ~]# docker images 
REPOSITORY   TAG     IMAGE ID   CREATED             VIRTUAL SIZE 
centos    latest    97cad5e16cb6  3 weeks ago            196.5 MB 

[[email protected] ~]# docker ps -a 
CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS     PORTS    NAMES 
f88566c370dd  centos:latest  "ls -la /"   18 hours ago  Exited (0) 17 hours ago      third 
fdc12e9f65a9  centos:latest  "ls -la /"   18 hours ago  Exited (0) 17 hours ago      second 
604f0eba7010  centos:latest  "ls -la /"   18 hours ago  Exited (0) 17 hours ago      first 
+0

контейнер-докер не создан. Можете ли вы обновить вопрос с помощью вывода скрипта, который вы используете? делает 'docker ps -a' список вашего контейнера? – user2599522

+0

@ user2599522- Обновлен вопрос. – Kally

+0

Статус: Выход, конечно, вы не можете подключиться – YOU

ответ

1

чтобы сохранить контейнер вверх, Docker нуждается в команде, чтобы продолжать работать на переднем плане.

В вашем случае, команда «LS -la /» выводит содержимое каталогов и выходы, что приводит к выходу из контейнера. Попробуйте запустить контейнеры с командами, которые продолжают работать на переднем плане.

1

контейнеры запускают только одну команду, а затем выходят

docker_container 'first' do 
    repo 'centos' 
    command 'ls -la /' 
    end 

Подумайте об этом, как нерест подоболочку, выполняя ls -al / и затем выход.

хак, чтобы держать их и работает будет менять команду

ls -la /; sleep 10m 

Чтобы проверить ваши контейнеры выполнить команду, вы можете проверить журналы контейнера с

docker logs third 
+0

Как они могут работать постоянно. ls -la /; сон 10 м сделает их после 10 м. – Kally

+0

Выше решение не сработало. [root @ sonatadocker ~] # docker ps -a CONTAINER ID IMAGE КОМАНДА СОЗДАННЫЙ СОСТОЯНИЕ ПОРТЫ НАЗВАНИЯ ba6cbedeb3da centos: последняя "ls -la /; sleep 10m около минуты назад Выход (2) 58 секунд назад третий – Kally

+0

у меня есть два вопросы: (1) зачем нужен контейнер для запуска и запуска без выполнения каких-либо команд и (2) каковы журналы из контейнера, который вы пробовали – user2599522

0

изменяя команду «/ bin/Баш» Я мог видеть контейнеры в исправном состоянии

docker_service 'default' do 
    action [:create, :start] 
end 
# Pull latest image 
docker_image 'centos' do 
    tag 'latest' 
    action :pull 
end 
# Run container 
docker_container 'first' do 
    repo 'centos' 
    command '/bin/bash' 
    tty true 
    action :run 
    end 
    docker_container 'second' do 
    repo 'centos' 
    command '/bin/bash' 
    tty true 
    action :run 
    end