Запуск докер-контейнера на upstart в Amazon Linux не работает

Я пытаюсь заставить мой контейнер работать при запуске, используя upstart.

Как сказано в руководстве - я создал /etc/init/nginx_server.conf

description "Nginx docker"
author "Me"
start on filesystem and started docker
stop on runlevel [!2345]
respawn
script
  /usr/bin/docker run -d -p 80:80 test_server
end script

Запуск последней версии Amazon Linux (amzn-ami-hvm-2015.03.0.x86_64-gp2)

Контейнер не работает вообще (работает docker ps -a вообще не показывает)

2 ответа

В Amazon Linux демон Docker запускается с помощью сценария init.d, а не сценария Upstart. В вашем сценарии Upstart вы пытаетесь сигнализировать о запуске при запуске службы Docker (..started docker). Это будет работать, только если сценарий инициализации Docker является сценарием Upstart.

Можете добавить initctl emit docker-started в сценарий docker init.d, а затем запустить файл конфигурации службы Upstart с этим событием (т.е. start on docker-started)

Вы не можете выполнить "запуск докера" из выскочки, вам нужно создать контейнер из образа докера, а затем запустить "запуск докера" в выскочке. Если вы проверите /var/log/messages, вы, вероятно, увидите что-то вроде:

init: test_server main process (6570) terminated with status 1
init: test_server respawning too fast, stopped

Чтобы обойти это, попробуйте запустить:

docker run -d -p 80:80 test_server

Вы получите идентификатор контейнера в качестве вывода:

a64db8e1cca5

Затем поместите в свой файл выскочки:

description "Nginx docker"
start on filesystem and started docker
stop on runlevel [!2345]
respawn
script
  /usr/bin/docker start -a a64db8e1cca5
end script
Другие вопросы по тегам