Я пытаюсь запустить свой контейнер при запуске с помощью выскочки.
Как сказано в руководстве - я создал /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
совсем не показывает)
В Amazon Linux демон Docker запускается с помощью сценария init.d, а не сценария Upstart. В своем сценарии Upstart вы пытаетесь сигнализировать о запуске, когда запускается служба докеров (..started 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