Compose
コンテナ管理システムのひとつ
Docker Compose の仕様を共通化したもの
https://compose-spec.io/
Compose File リファレンス
https://docs.docker.jp/reference/compose-file/toc.html
https://github.com/compose-spec/compose-spec/blob/master/spec.md
compose.yaml がYAML形式の設定ファイル json でも可
v1, v2 では docker-compose.yml など
Dockerのオプションを概ね設定できる
複数OCIコンテナをいい感じで連携しながらbuild、分離された仮想ネットワークで実行できる環境
Docker の v1, v2系と共通化された仕様とで3種類くらいある
Docker Compose
Docker Compose/Swarm
Podman Compose
などで利用できるはず
Docker ComposeやPodman Compose の実行ファイルを /usr/local/bin/docker-compose に配置すれば Podman の拡張として使える
類似機能にPod, Podman Quadletなどがある
version: なくていい
services: サービスの一覧 コンテナのリスト
volumes: マウントするボリュームの一覧
configs:
secrets:
networks: ネットワークのカスタム
などが書けるのでDocker単体よりはComposeにまとめて使いたい
services の下にコンテナ
コンテナ名:
build: Dockerfile のあるフォルダなどを指定する Dockerfileとフォルダを別々に指定することもできる
image: レジストリにあるイメージ名を指定する build がある場合は生成するimage名
tty: true -t っぽい
stdin_open: -i っぽい
volumes: マウントする一覧 大枠のvolumes で指定したものか外側のフォルダ、ファイルなど
ports: 公開するport 外側:内側 /udp など
network: 所属するネットワーク
links: 名前解決 自己コンテナは無理なのか?
extra_hosts: 外部ホストのマッピング 名前解決
environment: 環境変数など
build と image はどちらかがあればいいが両方指定することもできる
tty や stdin_open はコンソール用途で使うMinecraft Serverなどで有用 docker run や exec の -ti と同じか
compose サブコマンド
ps 一覧
build 構築
up コンテナ、ネットワーク生成 (起動)
down コンテナ、ネットワーク終了
stop コンテナ名 一時停止 コンテナ名省略ではCompose内の全コンテナ
start コンテナ名 一時停止からの再開 コンテナ名省略ではCompose内の全コンテナ
exec コンテナ内コマンドの実行