全ての記事へ戻る

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を実行する

コンテナの中に潜入捜査するときに使います。shbashかは、コンテナに聞いてみないと分かりません(運ゲー)。

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