Dockerを会社で初めて使った時、死んだ魚の目をしたデブのおっさんがlinuxのコマンドとdockerのコマンドは覚えろって言ってきた。でも、Dockerの基礎的な概念を理解していればコマンドなんか覚えなくていいと俺は思う。
ということで今回は、俺みたいにコマンドなんか覚えたくない人向けにDocker Composeのコマンドをまとめておく。
![](https://sneakyblog.com/wp-content/uploads/2022/09/profilepic1-1.png)
どうも、スニーキーです
目次:クリックでジャンプ
【docker-compose build】イメージの作成
docker-compose build docker-compose build --no-cache
- イメージの作成し、コンテナは作成しない。
- Dockerfile、PHPの設定ファイル php.ini や Apacheの設定ファイル 000-default.confを更新したら実行する。
- docker-compose.ymlに指定してる複数のイメージのビルドをする****Dockerfileからimageをbuildする=イメージを作る。
- cacheがあればそちらを優先的に使ってビルドする。Dockerfileを更新したなどの理由でキャッシュを使いたくない場合は docker-compose build --no-cache とする。
- cacheとはDockerは一度ビルドするとキャッシュというのが作成される。
【docker-compose up】イメージの作成、コンテナの作成と起動
docker-compose up docker-compose up -d
- 複数のイメージの作成とコンテナの作成と起動
- docker-compose.yml変更を反映
- option -dはバックグラウンドで実行できる。
- まだイメージが作成されていなければ、イメージを作成して、さらにコンテナを作成・起動する
- イメージが既にある場合は、既存のイメージをそのまま使います。
- すでにコンテナが存在すれば、イメージ・コンテナの再作成は行わず、(停止中の)コンテナを起動するだけ
- 構築するimageはdocker-compose.ymlファイルに定義されているもの、またはDockerfileを参考にして構築
docker-compose upすると、以前に起動したコンテナと名前が重なっているので、不要なコンテナを削除するか名前を変更するかというエラーに遭遇。以前、docker-compose downをしてコンテナは削除されていはずなのにされてないケース。
下記のコマンドで削除すれば解決する。
$ docker rm $(docker ps -a -q)
【docker-compose stop】コンテナの停止
docker-compose stop -d
- 削除せずにコンテナを停止
【docker-compose down】コンテナを停止かつ削除
docker-compose down
- 停止かつコンテナ削除
- イメージは削除しない。
docker-compose downした後に、docker ps -aでコンテナ一覧を表示すると前回作成したmysqlのコンテナが削除されていないのが分かる!理由は不明。
【docker-compose exec app bash】コンテナの中に入る
docker-compose exec app bash
- 起動中のコンテナのシェルへ接続
- docker-compose exec #{コンテナのサービス名} ${コマンド}
- 起動中のコンテナに対して実行
- LINUX操作を行えるようにする
- コンテナのサービス名はdocker-compose.ymlの中に記述がある。
【docker-compose ps】コンテナの一覧を表示
docker-compose ps
- コンテナ一覧を表示