コンテンツにスキップ

コマンド@Docker compose

はじめに

本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。


01. docker composeコマンド

config

▼ configとは

バリデーションとして、docker-compose.ymlファイルを展開する。ファイル内で、相対パスや変数を使用している場合、これらが正しく設定されているかを確認できる。

$ docker compose config


build

▼ buildとは

イメージをビルドする。

▼ --no-cache

キャッシュを使用せずにコンテナイメージをビルドする。

$ docker compose build --no-cache


up

▼ upとは

指定したサービスのコンテナイメージのビルド、コンテナレイヤー作成、コンテナ作成、コンテナ起動を実行する。

コンテナ作成までが完了していて停止中が存在する場合、これをコンテナを起動する。

また起動中コンテナがあれば、これを再起動する。

オプションにより起動モードが異なる。

▼ オプション無し

指定したサービスのコンテナイメージのビルド、コンテナレイヤー作成、コンテナ作成、コンテナ起動を実行する。

アタッチモードでコンテナを起動する。

# アタッチモード
$ docker compose up <サービス名>

▼ -d

指定したサービスのコンテナイメージのビルド、コンテナレイヤー作成、コンテナ作成、コンテナ起動を実行する。

デタッチドモードでコンテナを起動する。

# デタッチモード
$ docker compose up -d <サービス名>

▼ --build

イメージをビルドし、コンテナを作成する。

$ docker compose up --build -d <サービス名>

▼ -f

ファイルを指定して、docker-composeを実行する。

$ docker compose up -f foo-docker-compose.yml


run

▼ runとは

すでに停止中または起動中コンテナが存在していても、これとは別にコンテナを新しく作成し、起動する。加えてそのコンテナ内でコマンドを実行する。起動時にbashプロセスやshellプロセスを実行すると、コンテナに通信できる。何も渡さない場合は、デフォルトのプロセスとしてbashプロセスが実行される。docker-compose runコマンドでは、アタッチモードとデタッチモードを選択できる。新しく起動したコンテナを停止後に自動削除する場合は、rmオプションを付けるようにする。service-portsオプションを使用しないと、ホストとコンテナ間のポートフォワーディングを有効化できないため注意する。

▼ --service-ports

既存コンテナを残して、指定したサービスの新しいコンテナをアタッチモードで起動する。

また、ホストとコンテナ間のポートフォワーディングを有効化するか否かを設定する。

# アタッチモード
$ docker compose run --rm --service-ports <サービス名>

▼ -d --service-ports

既存コンテナを残して、指定したサービスの新しいコンテナをデタッチドモードで起動する。

また、ホストとコンテナ間のポートフォワーディングを有効化するか否かを設定する。

# デタッチモード
$ docker compose run --rm -d --service-ports <サービス名>


stop

▼ stopとは

指定したサービスの起動中コンテナを全て停止する。

$ docker compose stop <サービス名>


down

▼ downとは

指定したリソースを削除する。

▼ --rmi --volumes --remove-orphans

全てのリソース (イメージ、コンテナ、ボリューム、ネットワーク) を削除する。

$ docker compose down --rmi all --volumes --remove-orphans


logs

▼ logsとは

コンテナ内に入ることなく、起動プロセスから出力されるログを確認できる。

オプションごとに、ログの表示タイプが異なる。

▼ オプション無し

バックグラウンドでログを取得する。

$ docker compose logs <サービス名>

▼ -f

フォアグラウンドでログを取得する。

$ docker compose logs -f <サービス名>


02. compose-cli

down

クラウドインフラストラクチャの削除をプロビジョニングする。

コンテキストがAWSの場合は、AWS ECSクラスターとその中身を削除する。


up

クラウドインフラストラクチャの作成をプロビジョニングする。

コンテキストがAWSの場合は、AWS ECSクラスターとその中身を作成する。