0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Docker Compose でマシン再起動時に自動でコンテナを立ち上げる設定

Posted at

🐳 Docker Compose でマシン再起動時に自動でコンテナを立ち上げる設定

📋 概要

Docker Compose を使用して、マシン(ホスト)が再起動された際に、自動的にコンテナを立ち上げる方法を解説します。


🚦 再起動ポリシー (restart オプション)

docker-compose.yml の各サービスに restart オプションを設定することで、再起動ポリシーを制御できます。

services:
  web:
    image: nginx
    restart: always  # 👈 これで自動再起動を設定
    ports:
      - "80:80"

✅ 主な restart ポリシーの種類

ポリシー 説明
no 自動再起動しません(デフォルト設定)。
always コンテナが停止した場合、常に再起動します。また、ホストマシンが再起動した場合も起動します。
on-failure コンテナが異常終了した場合に再起動します(正常終了コード以外の場合)。
unless-stopped always と似ていますが、手動で停止した場合は再起動しません。

🆚 alwaysunless-stopped の違い

  • always: 手動で docker stop しても、ホスト再起動後に自動で再起動します。
  • unless-stopped: 手動で docker stop した場合、ホスト再起動後も再開しません。

🛠 設定例: 複数サービスの自動起動

version: '3.9'

services:
  app:
    image: my-app-image
    restart: always  # マシン再起動時に自動起動
    ports:
      - "8080:80"

  db:
    image: mysql
    restart: unless-stopped  # 停止したままにしたい場合
    environment:
      MYSQL_ROOT_PASSWORD: example
  • app サービスは常に自動起動します。
  • db サービスは、手動停止していなければ自動起動します。

💡 既存のコンテナに設定を適用する方法

1. docker-compose.yml を変更した場合

docker-compose down
docker-compose up -d

2. すでに動作中のコンテナに動的に設定を変更する場合

docker update --restart=always <コンテナ名>

🔍 再起動ポリシーの確認方法

docker inspect -f '{{.HostConfig.RestartPolicy.Name}}' <コンテナ名>
  • alwaysunless-stopped になっていることを確認できます。

⚠️ Docker サービス自体も自動起動設定を確認

もしマシンが再起動された際に、Docker サービス自体が立ち上がらない場合、コンテナも自動起動しません。

✅ Linux で Docker サービスを自動起動に設定

sudo systemctl enable docker
  • Docker サービスがシステム起動時に自動で開始されます。

✅ まとめ

  • docker-compose.ymlrestart: alwaysrestart: unless-stopped を設定する。
  • 既存のコンテナには docker update --restart=always <コンテナ名> で設定可能。
  • Docker サービス自体も systemctl enable docker で自動起動設定する。

これで、マシン再起動後も Docker コンテナが自動的に立ち上がるようになります!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?