docker-composeの使い方
docker-composeの使い方について、備忘録として簡単にまとめておきます。
ゼロからはじめる Dockerによるアプリケーション実行環境構築 | Udemyで学んだことを基本に、docker-composeの使い方をまとめてみました。
docker-composeとは
複数のコンテナを使用したアプリケーションを定義・実行するツール
複数のコンテナを利用し疎結合なサービスにすることで、保守性や可読性が高まります。
docker-compose実行の手順
- Dockerfile or 使用するイメージの用意
- 各コンテナを立ち上げるための準備(Dockerfileの書き方とかは本記事では言及しません)
- docker-compose.ymlの作成
- サービスをどのように構成するかが記述されているファイル
- docker compose up の実行
- 上二つで用意したものを使って、実際にサービスを立ち上げる
docker-compose.ymlの書き方
version: '3' services: db: #サービス名 # サービス(コンテナ)をイメージから立ち上げる場合はimage、Dockerfileからならbuildを使用する image: [サービスを立ち上げる基になるイメージ名] build: [Dockerfileのあるディレクトリ名] ports: - "[外部に公開するport]:[マッピングするポート]" volumes: - [ホスト側のディレクトリ or volume名]:[docker内のディレクトリ] command: [コンテナ起動時に実行したいコマンド] links: - [linkしたいサービス名] depends_on: #依存関係の定義 - [サービス名] #本サービス起動前にどのサービスを起動したいか記載 frontend: ... volumes: #volumeを自分で定義する [volume名]:
主要コマンド
以下、使用頻度が高いであろうコマンドをまとめています。
※docker-composeのコマンドは基本的にdocker-compose.ymlがあるディレクトリで実行する。
-f
オプションで、docker-composeファイルを指定することもできる
docker-compose build
サービスのビルドを実行
docker-compose build
docker-compose up
サービスごとのコンテナを作成して起動する
--build
でコンテナ作成前にイメージを構築できる
docker-compose up
docker-compose stop
サービス・コンテナの停止
docker-compose stop
docker-compose down
コンテナ・ネットワークの削除を行う
-v
でvolumeの削除、---rmi
でimageの削除も行うことができる
docker-compose down
docker-compose ps
本アプリケーションで作成されたコンテナの一覧を表示する
docker-compose ps
docker-compose run
サービスのコンテナ内でコマンドを実行する
(個人的にはこのコマンドについては、docker execでコンテナの中に入り込んで作業した方がやりやすいと思っているのであまり使わないかも、、?)
docker-compose run [サービス] [サービスのコンテナ内で実行したいコマンド]