これで不意のシャットダウンでも大丈夫!Dockerコンテナを自動起動する方法

Dockerを使うに当たって、不安の一つが「シャットダウンした後の再起動で、Dockerコンテナって自動で立ち上がるの?」ということでした。
まあ本番環境で使われていたりもするので、そういう点はきちんと考慮されている、と思っていましたが、方法は意外と簡単でした。

http://publicdomainarchive.com/public-domain-images-coffee-cans-yellow-black-blue-orange-bokeh-pinewood-social-nashville-tennessee/

ここに書くのはCentOS 7での方法です

これから記載する方法は「CentOS7」での方法になります。
CentOS6などは恐らく、”/etc/init.d/”辺りに記述することになるかと思います。

設定ファイルを作成

まずは設定ファイルを作成します。
作成場所 : /etc/systemd/system/ 配下
ファイル名は例として下記にします。
ファイル名 : docker-auto.service
[bash]$ cd /etc/systemd/system
$ vi docker-auto.service #ファイル名は特に規定はなさそうですが拡張子は".service"にします
[Unit]
Description=docker-auto
After=docker.service # dockerを起動するファイル名を指定しておく
Requires=docker.service # dockerを起動するファイル名を指定しておく
[Service]
ExecStart=/usr/bin/docker start [コンテナ名 or コンテナID]
[Install]
WantedBy=multi-user.target[/bash]
ちなみに
ExecStart=/usr/bin/docker start [コンテナ名 or コンテナID]
の[コンテナ名 or コンテナID]は複数指定が可能です。
複数指定する場合、先に実行したいコンテナを前に書きます。

systemctl で起動設定

systemctlで起動の設定を行います。
[bash]$ sudo systemctl enable docker-auto.service
起動したかどうか確認します。
$ sudo systemctl status docker-auto.service
docker-auto.service – docker-auto
Loaded: loaded (/etc/systemd/system/docker-auto.service; enabled)
Active: inactive (dead)[/bash]

試しに起動してみる

試しに起動してみます。
[bash]念のため、起動させたいDockerコンテナを止めておきます。
$ sudo docker stop [コンテナID]
$ sudo systemctl start docker-auto.service
Dockerコンテナが起動しているかどうか確認します
$ sudo docker ps
起動させたいコンテナが起動していればOKです[/bash]

後はこのスクリプトにコンテナIDを追加していくだけ

その後はこのスクリプトに起動させたいコンテナのコンテナIDを追加していけば、自動起動します。
ここまでくるとかなり便利ですね。
[tmkm-amazon asin=’479814102X’][/tmkm-amazon]

Share this post