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