Problem

マシン再起動後、自動起動してほしいコンテナってありますよね。
Portainerとか特にそうです。
そんな自動起動の方法のメモ。

Resolution

Dockerの自動起動

恐らくデフォルトで自動起動になっているとは思います。
もし、自動起動設定になっていない場合は下記。

1
$ systemctl enable docker 

コンテナの自動起動

再起動を指定できるのは、Dockerのバージョン1.2.0から。
run 実行時に –restartオプション を付与することでDocker起動時にコンテナを自動で起動させることができます。
また、オプションに追加可能なポリシーは下記。

ポリシー 内容
no 再起動しない (既定値)
on-failure 終了ステータスが非0の場合に再起動する
on-failure:X 終了ステータスが非0の場合にX回だけ再起動する
always 終了ステータスを無視して再起動する

ただし、上記の場合は、runで指定する場合で、既に作成したコンテナには使えません。
作成済みコンテナのに対してrestartを設定するには下記。

1
$ docker update --restart=always