#docker-composeとは
YAMLファイルという形式の設計図で複数コンテナをまとめて管理することができるDockerアプリケーションのためのツールを指します。
##build
Dockerイメージを構築するコマンド
docker-compose build
-
Dockerファイルを更新した場合
- キャッシュが有効になっている場合、そのキャッシュをもとに再構築されることで更新内容がうまく反映されないことがある。そのため、
--no-cache
でキャッシュを無効にしてから構築する必要がある。
- キャッシュが有効になっている場合、そのキャッシュをもとに再構築されることで更新内容がうまく反映されないことがある。そのため、
docker-compose build --no-cache
##up
コンテナを起動するコマンド
- イメージが作成されていない場合、イメージ作成後にコンテナを作成・起動
- すでにコンテナが存在する場合、イメージ・コンテナの再作成は行わず、停止中のコンテナを起動
$ docker-compose up
###-d
- コンテナをバックグラウンドで起動するオプション
- そのため、同ターミナルでコマンド操作が可能
$ docker-compose up -d
###--build
Dockerfileの書き換えなどのビルド処理の変更をイメージに反映させるオプション
- ① イメージ作成から② コンテナイメージの作成・起動を同時に行う
- ①
docker-compose up
- ②
docker-compose build
$ docker-compose up --build
##down
docker-compose.ymlで管理されているコンテナを停止&削除する
-
カレントディレクトリの
docker-compose.yml
のみ適用される - 同じ階層に
docker-compose.yml
がない場合は上の階層を探しに行く
$ docker-compose down
##restart
docker-compose.ymlで管理されているコンテナをすべて再起動する
$ docker-compose restart
##ps
- docker-compose.ymlで管理しているコンテナ一覧の表示
- 対象の
docker-compose.yml
で書かれたコンテナのみ表示されるのでコンテナを把握しやすくなる
$ docker-compose ps
##run
- docker-compose.ymlで管理しているサービス一つを指定してコマンドを実行
- build前でも実行可能なコマンドで、フレームワークのインストールなどに使うと便利
$ docker-compose run <サービス名> <実行したいコマンド>
- Gemがインストールできたのか確認する場合(Ruby on Rails)
-
docker-compose.yml
のservices
内にapi
という名前のRails API
を設定している前提
$ docker-compose run api bundle info <Gem名>