Используя инструкции для автоматического запуска Docker на Linode VPS с Ubuntu 12.04 и Docker 0.8.1, указанный контейнер не запускается при перезагрузке.
После загрузки я могу
~$ sudo start [service-name]
и все идет по плану, но я также хотел бы, чтобы контейнер перезагрузился после перезагрузки.
Разве сценарий в руководстве не предназначен для перезагрузки?
Файл / etc / default / docker содержит одну строку:
DOCKER_OPTS="-r=false"
/etc/init/service-name.conf прямо со страницы докера:
description "service description"
author "me"
start on filesystem and started docker
stop on runlevel [!2345]
respawn
script
# Wait for docker to finish starting up first.
FILE=/var/run/docker.sock
while [ ! -e $FILE ] ; do
inotifywait -t 2 -e create $(dirname $FILE)
done
/usr/bin/docker start -a db5e61a9afa8
end script
/etc/default/docker
?Ответы:
В какой-то момент за последние пару месяцев сценарий upstart в руководстве был изменен, чтобы удалить цикл, ожидающий запуска Docker. Я удалил цикл из своих сценариев выгрузки, и мои контейнеры теперь корректно перезапускаются после перезагрузки.
Мой скрипт /etc/init/service-name.conf теперь выглядит так:
Я не уверен, что случилось с этим циклом. Возможно, это указывало на неправильный файл в моей системе, хотя я не вносил никаких изменений в установку докера по умолчанию. Сейчас я просто рад, что исправление включало удаление кода, а не какой-то сложный обходной путь.
источник
stop service-name
. Я сталкиваюсь с этой проблемой :(Для всех, кто использует Ubuntu 14.04, apt-get - разновидность Docker. Вам просто нужно изменить сценарий запуска, чтобы он ожидал «docker.io», а не «docker», вот так:
источник
Я использую Ubuntu 13.10 в качестве хоста, и у меня была та же проблема. Я обнаружил, что docker устанавливает сценарий rc для docker
/etc/init.d/docker
и одновременно устанавливает сценарий upstart в /etc/init/docker.conf. Я просто должен был удалить скрипт rc,/etc/init.d/docker
чтобы эта проблема исчезла.Надеюсь, это работает и для вас.
источник
Это означает: не перезапускать ранее запущенные контейнеры.
Удалите
-r
параметр или измените его на true.источник
/var/run/docker.sock
это сокет, поэтому вы должны использовать-S
при тестировании на существование:источник