Docker Compose コマンド(まとめ)

2020/03/10

Docker Compose とはyaml形式の設定ファイルで記述されており、複数コンテナの実行を一括で管理できるツールです。

今回はDocker Composeコマンドをまとめてみました。

 

INDEX

 

基本コマンド 早見表

コマンド 説明
docker-compose ps コンテナの一覧
docker-compose images イメージの一覧
docker-compose build サービスのimageをビルド
docker-compose restart サービスを再起動
docker-compose run サービスを起動
(※-dオプションでバックグランドで起動)
docker-compose up コンテナの作成と起動
docker-compose exec コンテナに対してコマンドを実行
docker-compose logs サービスのログを出力
docker-compose stop サービスを停止させる
docker-compose rm docker-compose.ymlにかかれているコンテナを削除
docker-compose down コンテナを停止&削除

 

image構築 コンテナ構築 コンテナ起動
docker-compose build × ×
docker-compose up
docker-compose start × ×
docker-compose run 〇(単独) 〇(単独) 〇(単独)
buildコマンド
imageを構築します。コンテナは作成しません。
upコマンド
キャッシュがある場合はそれを使って一発でイメージの構築から、コンテナの構築・起動までします。imageがなくてもbuildから実行してくれます。
startコマンド
既存のコンテナを起動します。
runコマンド
imageの構築から、コンテナの構築・起動までしてくれます。

 

基本の流れ

1.ステータス確認

docker-compose ps でコンテナ一覧を表示します。


# Laradockのディレクトリに移動
$cd /プロジェクト/laradock

# Git bash(ローカル環境)
$ docker-compose ps

# AWS EC2(本番環境)
# AWS EC2でコンテナを起動する場合はスーパーユーザで実行していく
$ sudo docker-compose ps 

 

実演

 

2.起動

apache2 と mysql のコンテナを起動すると、依存関係のある php-fpm と workspace コンテナも起動されます。


# もちろん、php-fpm と workspaceコンテナも指定してもOK
$ docker-compose up -d apache2 mysql

# Apachじゃなくてnginxの場合
$ docker-compose up -d nginx mysql

# PhpMyAdminコンテナの起動
$ docker-compose up -d phpmyadmin

 

実演

 

3.コンテナ内のサービスに対してコマンドを実行

composerコマンドやmigrationコマンド、artisanコマンドを実行したい場合はworkspaceコンテナに入ります。

exec コマンドを使って、コンテナ内のサービスに対してコマンドを実行します。

 

構文

docker-compose + exec (or run) + サービス名 + 実行したいコマンド

run を指定して実行した場合は、新しくコンテナを立ち上げてから実行します。
exec を指定して実行した場合は、既に立ち上がっているコンテナを使って実行します。

# 1)Git bash(ローカル環境)でコマンドを打つケース
# Git Bachでは winpty を頭につける
$ winpty docker-compose exec workspace bash

# 2)AWS EC2(本番環境)でコマンド打つケース
# EC2ではスーパーユーザで実行
# sudo docker-compose exec workspace bash

# 接続したらcomposerコマンド、migrationコマンド、artisanコマンドが実行できる
# composer --version

# 接続を終了する場合
# exit

 

実演

 

4.停止

基本は stop を使います。コンテナ名を指定せずに実行すると、起動中のコンテナが全部止まります。


# 全てのサービスを停止
$ docker-compose stop

# 停止かつコンテナ削除
$ docker-compose down

# 再起動
$ docker-compose restart

 

実演

 

自宅ではじめるDocker入門

Docker関連の数ある本でも、図や丁寧な解説で「わかりやすい」と評判がいい本です。コマンドを叩きながら、Dockerにおける「イメージ」「コンテナ」が理解できます。まだ、Kindle版が出てないのは惜しいですが、Docker入門としておススメの1冊です。

Amazonで詳細を見る

オススメ

 

本庄マサノリ

仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら

>> Twitter をフォローする

 

-チュートリアル, 環境構築