Docker-контейнеры выходят после команды запуска - PullRequest
0 голосов
/ 23 сентября 2019

Я пытаюсь создать Docker-контейнер, который добавляет образ Python из Docker-концентратора, используя рецепт шеф-повара.После запуска chef-client я вижу контейнер, но он не запускается даже после ввода команды запуска.

Вот мой рецепт поваренной книги для извлечения образа python,

docker_service 'default' do
  action [:create, :start]
end

docker_image 'python' do
  tag 'latest'
  action :pull
end

docker_container 'testpy' do
  repo 'python'
  tag 'latest'
  action :run
end

Нижепроблема с контейнером,

root @ ubuntunode2-vm: ~ # запуск докера 2e512235c0fe
2e512235c0fe

root @ ubuntunode2-vm: ~ # exer -it Docker -it 2e512235c0fe bash

Ошибка ответа от демона: контейнер 2e512235c0fe50b6314648b9d6eae6162790e0793008344d27288d95c69d4923 не запущен

Выделенный контейнер на снимке экрана создается с помощью рецепта шеф-повара

Ответы [ 2 ]

0 голосов
/ 23 сентября 2019

Интерактивная оболочка Python требует tty для запуска, добавьте tty: true в блок docker_container, и вы должны быть в порядке.

0 голосов
/ 23 сентября 2019

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

при условии, что вы используете поваренную книгу докера:

  1. установите механизм докера.Вы можете сделать это, используя ресурс docker_installtion.Я предпочитаю ресурс docker_installation_package, чтобы использовать пакет docker для репозитория linux и закрепить версию пакета
  2. после установки механизма закрепления, давайте удостоверимся, что демон механизма закрепления (служба)это работает.для этого вы можете использовать (собственный) ресурс service.обратите внимание, что в кулинарной книге Docker есть ресурс docker_service, но я предпочитаю собственный метод обслуживания
  3. извлечение образа докера с использованием docker_image resource
  4. используйте ресурс docker_container для запуска образа вытянутого докера
...