🐳

【保存版】Dockerコンテナ操作の基本コマンド逆引きチートシート

に公開

はじめに

Dockerを日常的に使っていても、「あれ、コンテナに入るコマンドなんだっけ?」「起動中のコンテナ一覧はどう見るんだっけ?」と、ふとした瞬間にコマンドを忘れてしまうことはありませんか?

この記事では、Dockerのコンテナ操作で頻繁に使う基本的なコマンドを、目的別に「逆引き」できるチートシートとしてまとめました。自身のWikiで書き溜めていたメモを、Zenn読者の皆さんにも役立つように清書したものです。

コンテナのライフサイクル管理

まずはコンテナの作成から起動、停止、削除まで、基本的なライフサイクルを管理するコマンドです。

1. コンテナを作成して起動する (run)

新しいコンテナをイメージから作成し、起動します。最もよく使うコマンドの一つです。

# -d: バックグラウンドで実行(デタッチモード)
# -p 8080:80: ホストの8080番ポートをコンテナの80番ポートに接続
# --name my-nginx: コンテナに「my-nginx」という名前を付ける
docker run -d -p 8080:80 --name my-nginx nginx

インタラクティブなシェルを起動したい場合は -it を使います。

# --rm: コンテナ終了時に自動で削除する
# /bin/bash: 起動後に実行するコマンド
docker run -it --rm centos:7 /bin/bash

2. 既存のコンテナを起動する (start)

停止しているコンテナを起動します。

docker start <コンテナ名 or コンテナID>

3. コンテナを停止する (stop)

起動中のコンテナを安全に停止します。

docker stop <コンテナ名 or コンテナID>

4. コンテナを再起動する (restart)

起動中のコンテナを再起動します。

docker restart <コンテナ名 or コンテナID>

5. コンテナを削除する (rm)

停止しているコンテナを削除します。

# 複数のコンテナを一度に削除することも可能
docker rm <コンテナ名1> <コンテナ名2>

起動中のコンテナを強制的に削除したい場合は -f オプションを使います。

docker rm -f <コンテナ名>

コンテナの状態確認

次に、コンテナが今どうなっているのかを確認するためのコマンドです。

6. コンテナの一覧を表示する (ps)

現在稼働中のコンテナ一覧を表示します。

docker ps

停止中のコンテナも含めて全て表示する場合は -a オプションを付けます。

docker ps -a

7. コンテナのログを出力する (logs)

コンテナの標準出力をリアルタイムで確認します。デバッグの際に非常に役立ちます。

# -f: ログをリアルタイムで追跡する (Follow)
docker logs -f <コンテナ名 or コンテナID>

8. コンテナの詳細情報を表示する (inspect)

IPアドレスやマウントしているボリュームなど、コンテナに関する詳細な情報をJSON形式で取得します。

docker inspect <コンテナ名 or コンテナID>

コンテナ内での操作

9. 起動中のコンテナ内でコマンドを実行する (exec)

すでに起動しているコンテナの中に入って、シェルを操作したり特定のコマンドを実行したりします。

# -it: インタラクティブなTTY(端末)を確保する
docker exec -it <コンテナ名 or コンテナID> /bin/bash

イメージとリソースの管理

10. ローカルにあるイメージ一覧を表示する (images)

ローカルにダウンロード済みのDockerイメージ一覧を表示します。

docker images

11. イメージを削除する (rmi)

不要になったDockerイメージを削除します。

docker rmi <イメージ名 or イメージID>

12. 不要なリソースを一括削除する (system prune)

停止中のコンテナ、未使用のネットワーク、ダングリングイメージ(どのイメージからも参照されていない中間イメージ)などを一括でクリーンアップします。ディスク容量を確保したいときに便利です。

docker system prune

未使用のボリュームも全て削除したい場合は -a--volumes を付けます。(注意:必要なデータが入ったボリュームまで消さないように!

docker system prune -a --volumes

おわりに

以上、Dockerコンて操作で日常的によく使うコマンドをまとめてみました。基本的なコマンドだけでも、これだけ覚えておけば日々の開発がぐっとスムーズになるはずです。

この記事で紹介した内容を元に、今後はこちらのブログでより詳細な技術情報を発信していきます。よろしければブックマークやRSS登録をお願いします!

MyNote
https://mynote.meantix.com/

Discussion