web-dev-qa-db-ja.com

システムの再起動時にdockerコンテナを自動起動するにはどうすればよいですか?

DockerコンテナでWordPressサイトをホストしており、これらのコンテナを常にブート時に起動するようにしたいので、手動で行う必要があります。

43
nayan tiwari

今まで、私はそれを普通に行う方法があるとは思わない。トリッキーな解決策は restart policy を使用することです

Sudo docker run --restart=always -d your_image

これは、シャットダウンするたびにコンテナが終了するため、ホストを起動するとドッカーが再起動されることを意味します。

32
Maythux

既存のコンテナに再起動ポリシーを追加することは非常に一般的な使用例です。

これは、次のコマンドで実行できます。docker update --restart {no,on-failure,unless-stopped,always} container_name

詳細: Docker-コンテナを自動的に開始

24
SlimIT

Ubuntu 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

dockerサイト でさらに利用可能

追伸かなりかわいい設定:)

21
Reishin

私がしたことは、Upstartファイルを使用することです。

Docker Webサイト にいくつかの例と他の解決策があります。

/ 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

Docker 1.2からは、 再起動ポリシー があることに注意してください。これは、Dockerサービスの実行時(たとえば、ブート後)にコンテナーを自動的に再起動するのにも役立ちます。

Personnaly、私はpuppetを使用してワークステーションをプロビジョニングし、これを使用して Dockerモジュール を自動的に作成します スタートアップスクリプト これはより完全です(起動、停止、再起動、クリーンオプション... )

4
aklmie