コンテンツにスキップ

コマンド@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とは

コンテナを削除する。

オプションで、指定したリソースを削除する。

▼ --volumes

コンテナを削除し、ボリュームを削除する。

$ docker compose down --volumes

▼ --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クラスターとその中身を作成する。