3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Docker Compose まとめ

Last updated at Posted at 2021-11-12

目次

  1. Docker Composeとは?
  2. 定義ファイルの書式
  3. docker-composeコマンド
  4. いろいろな例

1. Docker Composeとは?

  • コンテナ構築に関わるコマンド文の内容をテキストファイル(定義ファイル)に書き込んで、一気に実行したり、停止・破棄したりできる。
  • 定義ファイル名は、「docker-compose.yml」で、YAML形式で記述する
  • Dockerfileはイメージを作るだけだが、Docker Composeはコンテナ、ネットワーク、ボリュームを作成できる
  • upコマンド(一括実行=run), downコマンド(コンテナとネットワーク一括停止・削除)
# Apacheコンテナの定義ファイル例
version: "3"

services:
  apa000ex2:
    image: httpd
    ports:
      - 8080:80
    restart: always
# 定義ファイル(docker-compose)の内容でコンテナが作成・実行される
$ docker-compose up httpd

2. 定義ファイルの書式

記述フォーマット

# Docker Composeの大項目の書き方

# Docker Composeのバージョン情報
# 必ず先頭に書く
version: "3"

# コンテナの情報
services:
  コンテナ名1:
      image: ~~
   networks:
        - ~~
   ports:
     - ポートの設定
    ...
  コンテナ名2:~~

# ネットワークの情報
networks:
  ネットワーク名1:~~

# ボリュームの情報
volumes:
  ボリューム名1:~~
  ボリューム名2:~~

※「-」を先頭につけた箇所は複数指定ができるところ

項目の定義項目リスト

大項目

大項目 内容
services コンテナに関する定義をする
networks ネットワークに関する定義をする
volumes ボリュームに関する定義をする

大項目内の定義項目

項目 docker runでの対応 内容
image イメージ引数 利用するイメージを指定する
networks --net 接続するネットワークを指定する
volumes -v, --mount 記憶領域のマウントを設定する
ports -p ポートのマッピングを設定する
environment -e 環境変数を設定する
depends_on なし 別のサービスに依存することを示す
restart なし コンテナが停止した時の再試行ポリシーを設定する
command コマンド引数 起動時の既定のコマンドを上書きする
container_name --name 起動するコンテナ名を明示的に指定する
dns --dns カスタムなDNSサーバーを明示的に設定する
env_file なし 環境設定情報を書いたファイルを読み込む
entrypoint --entrypoint 起動時のENTRYPOINTを上書きする
external_links --link 外部リンクを設定する
extra_hosts --add-host 外部ホストのIPアドレスを明示的に指定する
logging --log-driver ログ出力先を設定する
network_mode --network ネットワークモードを設定する

restartの設定値

restartは、コンテナが停止したときの挙動を定義できる。

項目 内容
no 何もしない
always 必ず再起動する
on-failure プロセスが0以外のステータスで終了したときは再起動する
unless-stopped 停止したときは再起動しない、それ以外は再起動する

3. docker-composeコマンド

# 構文フォーマット
# 「-f」で定義ファイルの場所を指定する
$ docker-compose -f 定義ファイルのパス コマンド オプション

docker-compose up

コンテナ・ボリューム・ネットワークを作成・実行する。

docker-compose upのオプション

オプション 内容
-d バックグラウンドで実行する
--no-color 白黒画面として表示する
--no-deps リンクしたサービスを表示しない
--force-recreate 設定やイメージに変更がなくても、コンテナを再生成する
--no-create コンテナがすでに存在していれば再生成しない
--no-build イメージが見つからなくてもビルドしない
--build コンテナを開始前にイメージをビルドする
--abort-on-container-exit コンテナが1つでも停止したら、すべてのコンテナを停止する
-t, --timeout コンテナを停止するときのタイムアウト秒数、既定は10秒
--remove-orphans 定義ファイルで定義されていないサービス用のコンテナを削除
--scale コンテナの数を変える

docker-compose down

定義ファイルの内容に従って、コンテナとネットワークを停止・削除する。
オプション指定なしだと、ボリュームとイメージは削除しない。

docker-compose downのオプション

オプション 内容
--rmi 種類 破棄後にイメージも削除する。(all:利用した全イメージ, local:imageにカスタムタグがないイメージ を対象)
-v, --volumes volumesに記述されているボリュームを削除する、ただしexternalが指定されているものは除く
--remove-orphans 定義ファイルで定義していないサービスのコンテナも削除する

docker-compose stop

定義ファイルの内容に従って、コンテナを停止する。

主なコマンド一覧

コマンド 内容
up コンテナを作成し、起動する
down コンテナとネットワーク停止及び削除する
ps コンテナ一覧を表示する
config 定義ファイルの確認と表示
port ポートの割り当てを表示する
logs コンテナの出力を表示する
start コンテナを開始する
stop コンテナを停止する
kill コンテナを強制停止する
exec コマンドを実行する
run コンテナを実行する
create コンテナを作成する
restart コンテナを再起動する
pause コンテナを一時停止する
unpause コンテナを再開する
rm 停止中のコンテナを削除する
build コンテナ用のイメージを構築または再構築する
pull コンテナ用のイメージをダウンロードする
scale コンテナ用コンテナの数を指定する
events コンテナからリアルタイムにイベントを受信する
help ヘルプ表示

4. いろいろな例

随時追加予定。

3
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?