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

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

sudo docker run --restart=always -d myimage

Выдержка Из Документации

Политики перезапуска Используя флаг --restart при запуске Docker, вы можете указать политику перезапуска для того, как контейнер должен или не должен перезапускаться при выходе.

нет - Не перезапускайте контейнер при выходе из него.

при сбое - Перезапускайте контейнер только в том случае, если он завершается с ненулевым статусом выхода.

всегда - Всегда перезапускайте контейнер независимо от статуса выхода.

Вы также можете указать максимальное количество попыток Docker перезапустить контейнер при использовании политики при сбое. По умолчанию Docker будет вечно пытаться перезапустить контейнер.

$ sudo docker run --restart=always redis

Это приведет к запуску контейнера redis с политикой перезапуска always, так что, если контейнер завершит работу, Docker перезапустит его.

$ sudo docker run --restart=on-failure:10 redis

Это приведет к запуску контейнера redis с политикой перезапуска при сбое и максимальным количеством перезапусков, равным 10. Если контейнер redis завершается с ненулевым статусом завершения более 10 раз подряд, Docker прекратит попытку перезапуска контейнера. Предоставление максимального предела перезапуска допустимо только для политики при сбое.