Tech & Tips

Dockerコンテナの自動起動設定を変更する方法

この記事は2年以上前ですので、内容が古い可能性があります

Dockerコンテナの自動起動設定するオプション名と設定方法を紹介していきます。

概要

Dockerには、再起動ポリシーという「コンテナ終了時に再起動するための仕組み」があります。
再起動ポリシーを設定しておけば、Dockerデーモンの起動時やホストOSの起動時に自動的にコンテナを開始することができます。

docker-composeを利用している場合の自動起動

自動起動を有効化するには、以下のオプションを使います。

restart: always

自動起動を停止するには、「restart: always」を削除するだけでOKです。

指定例

version: '2'

services:
  wordpress:
    image: wordpress:latest
    ports:
      - "3001:80"
    environment:
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_DB_USER: mysql_user
      WORDPRESS_DB_PASSWORD: mysql_pw
    # 自動起動の有効化
    restart: always

  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: root_pw
      MYSQL_DATABASE: wordpress
      MYSQL_USER: mysql_user
      MYSQL_PASSWORD: mysql_pw
    # 自動起動の有効化
    restart: always

指定例で使用しているdocker-compose.ymlは、以前作成した記事のものを利用しています。

Dockerコンテナ単体での自動起動

自動起動設定を変更するには、以下のオプションを使います。
◯有効化

--restart=always

◯無効化

--restart=no

docker updateコマンドを利用して、コンテナに「--restart=always」 or 「--restart=no」設定を付与します。
--restartオプションの後に、コンテナ名を指定します。

コマンド例

// 有効化
docker update --restart=always test_wordpress_1
// 無効化
docker update --restart=no test_wordpress_1

自動起動が有効になっているコンテナを検索する

以下のコマンドで自動起動が有効化になっているコンテナ一覧を取得することができます。

コマンド

docker inspect -f "{{.Name}} {{.HostConfig.RestartPolicy.Name}}" $(docker ps -aq) | grep always

出力結果

以下のように、コンテナ名の一覧として出力されます。

/container-name-1 always
/container-name-2 always
/container-name-3 always

docker inspectコマンドでDockerコンテナの情報を取得します。
docker ps -aqコマンドで起動しているコンテナのIDを取得します。
RestartPolicyの出力結果をgrepコマンドで検索して、絞り込みます。

大量のコンテナがある環境下で、自動起動の設定状況を確認して、
どのコンテナの設定を変更すればよいかを瞬時に把握できます。

参考記事

○docker-composeを利用している場合の自動起動
https://docs.docker.com/compose/reference/restart/

○Dockerコンテナ単体の自動起動
https://docs.docker.com/config/containers/start-containers-automatically/

○自動起動が有効になっているコンテナを取得するコマンド
https://stackoverflow.com/questions/35126337/how-can-i-know-which-docker-will-restart-after-docker-daemon-restarts/35127744#35127744

この記事をシェアする:
◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

私たちと一緒に働きませんか?

「Dockerコンテナの自動起動設定を変更する方法」はいかがでしたか?
株式会社プレスマンでは、 WordPressが大好きな方、仕事を通してさらにスキルを磨きたい方を募集しています。 まずは募集職種をご覧の上、お気軽にお問い合わせください。 あなたとお会いできるのを楽しみにしています。

採用情報を見る

-Tech & Tips
-

© 2024 PRESSMAN*Tech Powered by STINGER