Docker/Docker Composeの便利なコマンド集(忘れたらここ見て)
#docker
ドキュメントを読めば分かる、Googleで調べれば秒で出てくる、そんな内容ばかりです。でも毎回調べるのが面倒なので、未来の自分のためにここにメモしておきます。
(そして未来の自分は、過去の自分に感謝することでしょう...多分)
随時追加していきます(気が向いたら)。
dockerコマンド
- Dockerビルドなどで生成したファイルやキャッシュをクリアする(スッキリ状態)
ディスク容量が圧迫されて「もうダメだ...」となった時の最終兵器。これで大掃除完了!
docker system prune --all --force
docker system prune --all --force --volumes
- Dockerイメージをリスト
docker images
- Dockerイメージを削除
docker image rm <IMAGE ID>
- イメージ(dangling image)を一括削除
名前もないイメージたち(通称:幽霊イメージ)を成仏させるコマンド。
docker image prune -f
docker rm <CONTAINER ID>
- Dockerfileでdockerイメージを作成
docker build -t backend .
- コンテナーの中でshellを実行する
コンテナの中に潜入捜査するときに使います。shかbashかは、コンテナに聞いてみないと分かりません(運ゲー)。
docker exec -it <CONTAINER NAME> sh|bash
- dockerイメージを起動(dockerイメージが80ポートを使っている前提)
docker run -p 80:80 backend
- dockerイメージを起動(コンテナー内bash起動)
docker run -it backend
- 起動している全コンテナをストップする
「全員、止まれ!」という号令。暴走したコンテナたちを一斉に鎮圧します。
docker stop $(docker ps -a -q)
docker composeコマンド
複数のコンテナを指揮するオーケストラの指揮者、それがdocker composeです。
- docker-compose.ymlの特定サービスをビルド
docker compose build <SERVICE NAME>
- docker-compose.ymlの特定サービスをビルド、同時に起動する
docker compose up --build <SERVICE NAME>
- docker-compose.ymlのサービスをバックグラウンドで起動
-dは「detached mode」の略。「裏で勝手に動いててね」という意味です。
docker compose up -d
- docker-compose.ymlのサービスを停止
docker compose stop
- docker-compose.ymlのサービスを停止してコンテナを削除
downは「全部片付けて」という意味。-vを付けるとボリュームも消えるので、データが消えても泣かない覚悟がある時だけ使いましょう。
docker compose down
docker compose down -v # ボリュームも削除(危険!)
- docker-composeサービスのBASHを起動
docker compose -f <docker-compose.yml> exec <SERVICE_NAME> bash
tmux a -t <SERVICE_NAME>
- ログ確認
docker compose logs
実用例
- 1コマンドでフォルダーをウェブ公開する
「このフォルダの中身、ちょっと見せたいんだけど...」という時の魔法のコマンド。Pythonの簡易サーバーを使って、あっという間にWebサーバーの完成です。
docker rm -f video-server 2>/dev/null # 既存コンテナを消す(なければ無視)
docker run --name video-server -p 80:80 \
-v $(pwd):/web python:3 \
python3 -m http.server --directory /web 80