再起動ポリシーの設定ホストを再起動するなりして、Dockerコンテナを立ち上げる際に手動で行うのはとても面倒なものです。そこでコンテナを作るときに、runコマンドの--restartオプションをつけて、再起動のポリシーを決めておく手があります。busyboxオプションでの設定は4つあります。デフォルトではこれです。コンテナが異常終了した場合(ステータス0以外)に再起動をします。再起動のリトライ回数を設定できます。終了ステータスに関わらずデーモンが起動する際などどんな条件下でも(stopコマンドで止めない限り)再起動します。デーモンが起動する際に直近コンテナが停止状態無い限り再起動します。–restartオプションがない場合--restartオプションがない場合、ホストを再起動した場合など、コンテナを終了させると勝手には起動しません。別途startコマンドなどで立ち上げる必要があります。–restartオプションがない(つまりnoの状態)場合です。psコマンドでコンテナを確認してみます。nores起動していることが確認できます。この状態でDockerデーモンを再起動してみます。psコマンドで確認してみます。NAMESデーモンが再起動した際にコンテナは停止したので、なんにも表示されません。今度は--restartを設定してみます。設定はalwaysで試してみます。psコマンドでコンテナを確認してみます。resこの状態でDockerデーモンを再起動してみます。psコマンドで確認してみます。res自動的に起動していることが確認できます。こんな風に、自動的に再起動されるので場合によってはとても便利かと思いマス。補足・ハマったポイントコンテナの起動順コンテナの起動順番を指定するようなものではないようです。データベースコンテナと連携するコンテナなどの場合、データベースコンテナを先に起動している必要がありますが、この--restartオプションを使っても、おそらく起動順を保証できないかと思います(はず)。Comoposeなどのオーケストレーションツールを使うのが吉かと思いマス。--rmは排他的なので同時には設定できません。終了したら削除されちゃいますからね。まとめDockerコンテナはrunコマンドの--restartオプションで再起動ポリシーが設定できる。設定値no、on-failure[:max-retries]、alway、sunless-stoppedの4つ。うまく使えば自動起動設定として使える。コンテナの起動順番は指定できない。mino長年働いていた会社をリストラされてしまったおっさん。なにを思ったか未経験のプログラミングで再起を図ろうとする。プログラミングを勉強していく上で苦しんだこと、ハマったことを中心に記事を書きます。