По-видимому, текущий метод автоматического запуска контейнеров 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 прекратит попытку перезапуска контейнера. Предоставление максимального предела перезапуска допустимо только для политики при сбое.