compose.yaml の作成

Docker 中級

Mike Metzger

Data Engineering Consultant

YAML

  • Yet Another Markup Language
    • YAML Ain't Markup Language
  • テキストファイルだが、空白が重要(Python同様)
  • 多くの開発で設定に使用
  • 規則はやや複雑。主に例どおりに行を揃える
services:
  postgres:
    container_name: postgres
    image: postgres:latest
    ports:
      - "5432:5432"
    restart: always
  pgadmin:
    container_name: pgadmin
    image: dpage/pgadmin4:latest
    ports:
      - "5050:80"
    restart: always
Docker 中級

主なセクション

  • セクションごとに異なる要素を管理
  • services: 起動するコンテナ一覧
  • networks: ネットワーク定義
  • volumes: ボリュームのマウント
  • configs: カスタムイメージ不要の設定
  • secrets: パスワード、トークン、APIキー等の管理
  • 詳細は Docker Compose のドキュメントを参照
services:
  ... # コンテナ定義

networks: ... # ネットワーク設定
volumes: ... # ストレージ要件
configs: ... # 特別な設定
secrets: ... # パスワード等
1 https://docs.docker.com/compose/compose-file/
Docker 中級

services セクション

  • アプリに必要な全リソースを定義
  • 主に使用するコンテナとイメージを指定
  • 多くのオプションがあるが、個々のコンテナに適用
  • 必要に応じてインデント
  • 最初の小セクションは各コンポーネント名、その後に設定
Docker 中級

services の例

services:

# リソース名 postgres:
# 明示しないとランダム container_name: postgres
# 使用するコンテナイメージ image: postgres:latest
# 必要なポートマッピング ports: # ネットワーク詳細 - "5432:5432"
# 次のリソース pgadmin: ...
  • リソース名
  • container_name: コンテナの固定名(省略時はランダム)
  • image: 使用するコンテナイメージ
  • ports: 必要なポートマッピングの一覧
  • 続けて他の必要リソースを定義
Docker 中級

補足

  • config.yaml の文法は幅広い
    • ここでは compose.yaml のごく一部のみ
    • ドキュメントを確認しましょう!
  • compose.yaml をゼロから書く必要は通常ありません
1 https://docs.docker.com/compose/compose-file/
Docker 中級

演習に進みましょう!

Docker 中級

Preparing Video For Download...