Как автоматически запустить Docker-контейнер при перезагрузке системы?

Так как я размещал сайт WordPress в докер-контейнерах и хочу, чтобы эти контейнеры запускались всегда во время загрузки, нужно делать это вручную.

46
задан 30 May 2015 в 18:55

4 ответа

До настоящего времени я не думаю, что существует способ обычно делать это. Хитрое решение состоит в том, чтобы использовать политика перезапуска

sudo docker run --restart=always -d your_image

, Это означает каждый раз, когда Вы закрываетесь, это выйдет из Вашего контейнера поэтому, поскольку Вы запускаете свой хост тогда этот вывод для перезапуска докера.

0
ответ дан 30 May 2015 в 18:55

То, что я сделал, должно использовать Новомодные файлы.

можно найти некоторые примеры и другие решения в веб-сайт Докера .

Создают файл такой как этот в/etc/init:

Description "My container"
start on filesystem and started docker
stop on runlevel [!2345]
respawn
script
   /usr/bin/docker start -a mycontainer
end script
pre-stop script
  /usr/bin/docker stop mycontainer
end script

Примечание, как от Докера 1.2, существует политики перезапуска , который может также помочь автоматически перезапустить контейнеры, когда услуги докера выполняются (после того, как загрузитесь, например).

Personnaly, я использую марионетку, чтобы настроить мою рабочую станцию и использовать этот модуль Докера для автоматического создания сценарии запуска , которые являются больше завершенным (запустите, остановите, перезапустите, чистые опции...)

4
ответ дан 31 May 2015 в 04:55
  • 1
    Сбой питания, вероятно, произойдет? Если не тогда волнение по поводу этого только задержит его далее. – Michael Tunnell 8 August 2016 в 03:11

Поскольку человечность 15 теперь поддерживает systemd, образец для этого менеджера:

someservicename.service

[Unit]
Description=Some service
Requires=docker.service
After=docker.service

[Service]
Restart=always
ExecStart=/usr/bin/docker start -a container_name
ExecStop=/usr/bin/docker stop -t 2 container_name

[Install]
WantedBy=multi-user.target

, более доступный на сайт докера

P.S. Довольно милая конфигурация:)

21
ответ дан 31 May 2015 в 04:55
  • 1
    1. должен сделать две установленных версии рядом || 2. должен потерять все предыдущие данные || 3. должен теоретически сохранить некоторые данные как фотографии, музыка, и т.д. но заменять системные файлы от 14,04 с 16,04. || № 3 мог быть возможным вариантом, но этим я can' t гарантируют, что это обеспечит то, что Вы желаете точно, поэтому, конечно, должен сделать резервные копии всех Ваших важных данных. (по существу / размещают папку), ||, я все еще настоятельно рекомендую обновить с программным обеспечением Updater независимо от времени, требуемого сделать так, это - самая безопасная опция и that' s, что Вы запросили в своем первом вопросе. – Michael Tunnell 7 August 2016 в 17:44

Это - случай очень общего использования для добавления политики перезапуска в отношении существующего контейнера.

Это могло быть сделано со следующей командой: docker update --restart {no,on-failure,unless-stopped,always} container_name

Подробнее: Докер - Запускает контейнеры автоматически

30
ответ дан 22 November 2019 в 23:56

Другие вопросы по тегам:

Похожие вопросы: