docker-compose.yml覚え書き

create 2021/08/16

t f B! P L

docker-compose.ymlが必要なシーン

DBとWEBサービスを同時に立ち上げたいときなど、docker compose upのワンコマンドで動かせて便利。サービス一つだけでも使った方がよい。

コード例


services:
  db:
    image: postgres
    environment:
      - POSTGRES_PASSWORD
  web:
    environment:
      - SECRET_KEY
      - POSTGRES_PASSWORD
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db

version

docker-compose.ymlのファイルフォーマットのバージョン。

2021/02/17時点では3.8が最新っぽい。

Compose file version 3 reference

services

コンテナを「サービス」単位でまとめるための記述。

各コンテナの情報をこれにネストさせて書く。

db/web

サービスをどういう名前で定義するかの記述

わかりやすければなんでも良いっぽいけど、Docker起動の時に表示されるのでなんのサービスかわかるほうがよい。

上記の書き方のほかに、mysql、wordpressなど、直接利用するアプリケーション名を入れてもいいみたい。

image

Dockerhubからpullするイメージの指定。

build

Dockerfileのあるディレクトリを指定して、Dockerfileからイメージを読み込める。

environment

環境変数を設定する。

command

デフォルトのコマンドを上書きする。

entrypoint

デフォルトのコマンドを上書きする。commandと違って、bashでのコマンド入力で上書きされない。

docker-compose run web(自分で書いたサービス名) 以降のコマンドのデフォルトを入れられる。

volumes

ローカルのディレクトリをDockerイメージのディレクトリにマウントできる。

.:/code は、カレントディレクトリをDocker上のcodeディレクトリにマウントしている。

ports

ローカルとコンテナのポート番号を指定する

ホスト側:コンテナ側

コンテナ側だけ指定した場合は、ホスト側はランダムなポートが割り当てられる。

depends_on

サービス間の依存関係を指定する。

webの中でdepends_ondbを指定すると、webより先にdbが起動する。

参考ページ

docker-compose.yml の内容を理解しよう

【連載】世界一わかりみが深いコンテナ & Docker入門 〜 その4:docker-composeってなに? 〜 | SIOS Tech. Lab

Compose ファイル・リファレンス - Docker-docs-ja 19.03 ドキュメント

このブログを検索

自己紹介

自分の写真
Pythonが趣味です。 勉強のアウトプットを公開したくて、新たにブログ開設しました。 勉強メモのつもりだけど、日常の雑記も書きたい予定。

独学中の身で、個人的な勉強メモも投稿しているので、間違った内容が含まれることもあるかもしれません。
お気づきの際は、問い合わせフォームや、コメント欄からご指摘いただけましたら、大変助かります。

旧ブログ(更新停止中。いずれ統合するかも)ゆーるるのゆるゆる日記

参加中ランキング

PVアクセスランキング にほんブログ村

ブログ アーカイブ

QooQ