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コンテナをまとめて管理できるツールのこと
    • まとめて起動したり、終了させたりできる
  • dockerコマンドはだいたいdocker-composeコマンドとして使える
  • 設定ファイルはyml形式で記述される
    • docker-compose.yml

docker-compose.ymlファイルの基本項目

# 例
version: '3.7'

services:
  web:
    build: httpd/Dockerfile
    ports:
      - "8080:80"
    volumes:
      - httpd/code:/code
    depends_on:
      - db
  db:
    image: mysql:latest
    environment:
      MYSQL_ROOT_PASSWORD: my-secret-pw
    volumes:
      - db_data:/var/lib/mysql
volumes:
  db_data:

version

  • Docker Compose自体のバージョンを指定する

Docker自体のバージョンとは異なる点に注意

services

  • 各コンテナごとに設定を定義する
  • 設定項目
    • image
      • 使用するDockerイメージを指定
    • build
      • 使用するDockerfileを指定
      • imageかこちらのどちらかは必須で指定する、基本的にbuild推奨(=Dockerfileを使おうねということ)
    • container_name
      • コンテナに任意の名前を付ける
      • 設定推奨
    • ports
      • ポートの解放とポートフォワーディングを設定
      • {外部公開ポート}:{コンテナ内部ポート}
    • volumes
      • ホストとコンテナでディレクトリを共有する(マウント設定)
      • コードや設定ファイルなどに使用
    • environment
      • 環境変数を設定
      • DBコンテナの場合、ユーザー名やパスワードなど
    • depends_on
      • 他のサービスに依存する場合は指定
    • restart
      • コンテナが異常終了した場合の再起動ポリシーを指定
  • ここで定義したservicesの名称はdocker-compose.yml内でそのコンテナを指すキーとして使用できる(例のdepends_onを参照)

docker-composeコマンド

docker-composeでは基本的にdockerと同じコマンドが使えますが、固有のものもあります。
よく使うものを以下で紹介します。

docker-compose up -d

  • docker-compose.ymlで管理する各コンテナを起動する
  • -dオプションを使用し、デタッチモード(バックグラウンド)で実行するのが一般的

docker-compose down

  • docker-compose upの反対
  • docker-compose.ymlで管理する全コンテナに対し、docker stopとdocker rmを一括実行する

docker-compose restart

  • docker-compose.ymlで管理するコンテナを全て再起動する

docker-compose logs

  • 起動中のコンテナのログを表示する

docker-compose run

  • docker-compose.ymlで管理するコンテナを一つ指定してコマンドを実行する
  • イメージをビルドする前でも実行可能なので、フレームワークのインストールなどに使われる
docker-compose run {サービス名} {実行したいコマンド}

docker-compose ps

  • docker-compose.ymlで管理されているコンテナを一覧表示する

参照

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?