基本的に24365で動かすコンテナや、日中のみ動かし、夜間だけサーバを停止するような運用をする場合には、「サーバが起動している=コンテナが起動している」状態にしたい。
コンテナが自動で再起動する設定は簡単にできるため、メモしておく。
docker-compose.ymlに追記する
以下の設定を追加する
restart: always
例えば、こんな感じ
api-node-0: build: dockerfiles/catapult command: bash -c "/bin-mount/wait /state/api-node-0-nemgen && /bin-mount/wait /state/api-node-0-broker && /bin/bash /userconfig/startApiServer.sh" stop_signal: SIGINT volumes: - ../../build/catapult-config/api-node-0/userconfig/resources/:/userconfig/resources/ - ../../data/api-node-0:/data:rw - ../../bin/bash:/bin-mount - ../../build/state:/state depends_on: - setup-network - api-node-0-nemgen - api-node-broker-0 # 追加 restart: always
docker-composeを利用していない場合
自動再起動のオプションは以下の通り
# 有効化 --restart=always # 無効化 --restart=no
docker update
コマンドを利用して、コンテナに再起動のオプションをつける
--restart=...
の後に、コンテナ名を指定する
コマンド例
// 有効化 $ docker update --restart=always sample-1 // 無効化 $ docker update --restart=no sample-1
自動起動が有効になっているコンテナ一覧を表示するワンライナー
docker inspect -f "{{.Name}} {{.HostConfig.RestartPolicy.Name}}" $(docker ps -aq) | grep always
出力結果はコンテナの一覧
sample-1 sample-2 sample-3
参考
ホストを再起動した時などにDockerコンテナを自動的に再起動できるようにする | Unskilled?
再起動ポリシーの設定 ホストを再起動するなりして、Dockerコンテナを立ち上げる際に手動で行うのはとても面倒なものです。 そこでコンテナを作るときに、runコマンドの--restartオプションをつけて、再起動のポリシーを決めておく手があ...