dockerコマンドのチートシート

こんな人に読んでもらいたい

  • Dockerをインストールして触ってみたい
  • Dockerを利用する際に忘れがちな基本的なコマンドを確認したい

はじめに

Dockerを使って開発環境をコンテナ化し、チーム全員が同じ環境で作業できるようにしたいと思いました。

dockerについて基本的なコマンドを一緒に学習しましょう!

動作環境

  • MacBook Air M1, 2020
  • macOS Sonoma Ver.14.5
  • docker Ver.27.4.0

1. Dockerのインストール

1-1. Homebrewのインストール確認

MacBookを利用しているため、DockerのインストールにはHomebrewを利用します。
ターミナルを起動し、以下のコマンドを実行してHomebrewがインストールされていることを確認しましょう。
バージョンが表示されれば、インストールされています。

brew -v

もしHomebrewがインストールされていない場合は、以下を参考にHomebrewをインストールしましょう。
https://brew.sh/ja

1-2. Dockerのインストール

ターミナルで以下のコマンドを実行し、dockerをインストールしましょう。
--caskオプションを指定することで、デスクトップアプリもインストールされます。

brew install --cask docker

以下のコマンドを実行し、dockerのバージョンが表示されれば、インストールされています。

docker --version

2. dockerコマンドのチートシート

2-1. ログイン

Docker HubやAWS ECR、GCP Artifact Registryなどのプライベートリポジトリからコンテナイメージをプル(pull)するためには認証が必要です。

ターミナルで以下のコマンドを入力するとパスワード入力が要求されます。
ユーザ名・パスワードについては、Dockerのアカウント情報になります。

docker login -u [ユーザ名]

dockerを少し触ってみたいくらいであれば、本ステップは飛ばして問題ないです。

2-2. コンテナに名前をつけて起動

以下のコマンドを実行し、指定したコンテナに名前を付けて起動することができます。
イメージとは、コンテナの動作環境となるテンプレートファイルを指します。(例:CentOS)

docker run --name [名前] -it [利用したいイメージ名]

以下にCentOS 8のイメージを利用してコンテナを起動する例を示します。

docker run --name mycentos -it centos:8

また、以下のように最後にコマンドを指定することで、CentOSサーバ起動時にコマンドが実行されます。

docker run --name mycentos -it centos:8 /bin/bash

exitコマンドを実行し、CentOSサーバから抜けましょう。

exit

2-3. コンテナのプロセスを確認

以下のコマンドを実行し、コンテナのプロセスを確認することができます。
-aオプションを付けることで未起動のコンテナ含むすべてのプロセスを確認することができます。

docker ps -a

上記コマンドの実行結果であるコンテナのプロセスの確認結果を示します。

CONTAINER ID   IMAGE      COMMAND       CREATED         STATUS                     PORTS     NAMES
457f1e7b90ad   centos:8   "/bin/bash"   5 minutes ago   Exited (0) 3 minutes ago             mycentos

プロセスの確認は以下のように行います。

項目詳細
CONTAINER IDコンテナ ID
IMAGEイメージ ID
COMMANDコンテナ起動時に実行されたコマンド
CREATEDコンテナが作成された時間
STATUS公開しているポート
PORTSコンテナの状態(例: created 、 running 、 exited
NAMESコンテナ名

2-4. コンテナのプロセスを起動

以下のコマンドで停止していたコンテナを起動することができます。

docker start [コンテナID | コンテナ名]

2-5. コンテナのプロセスを停止

以下のコマンドで起動していたコンテナを停止することができます。

docker stop [コンテナID | コンテナ名]

2-6. コンテナのプロセスを再起動

以下のコマンドでコンテナを再起動することができます。

docker restart [コンテナID | コンテナ名]

2-7. コンテナ内に入ってコマンドの実行

以下のコマンドでコンテナに入り指定したコマンドを実行できます。
ただし、コンテナが起動されている必要があります。

docker exec -it [コンテナID | コンテナ名] [実行したいコマンド]

以下にCentOSサーバのコンテナに入り、bashコマンドを実行する例を示します。

docker exec -it mycentos bash

2-8. コンテナの削除

以下のコマンドで指定したコンテナを削除できます。
コンテナが起動中の場合は失敗します。-fオプションを指定することで強制的に削除することも可能です。

docker rm [コンテナID・コンテナ名]

docker rm [コンテナID1] [コンテナID2]

2-9. ローカルに保存されたイメージを一覧表示

以下のコマンドでローカルにあるイメージの一覧を表示します。

docker images

上記コマンドの実行結果であるローカルに保存されたイメージの確認結果を示します。

REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
centos       8         e6a0117ec169   3 years ago   272MB

コンテナイメージの確認は以下のように行います。

項目詳細
REPOSITORYリポジトリ
TAGイメージのタグ
IMAGE IDイメージ ID
CREATEDイメージが作成された時間
SIZEイメージ・ディスクの容量

2-10. ローカルに保存されたイメージの削除

以下のコマンドでローカルにあるイメージを削除します。
イメージがコンテナで利用中の場合は失敗します。-fオプションを指定することで強制的に削除することも可能です。

docker rmi [リポジトリ | イメージID]

以下のように複数のイメージを一括で削除することも可能です。

docker rmi [リポジトリ1] [リポジトリ2]

3. トラブルシューティング

3-1. Dockerが起動できていない

dockerコマンドを実行して、以下のようなエラーが発生した場合は、dockerのプロセスが起動できない可能性があります。

docker: Cannot connect to the Docker daemon at unix:///Users/user/.docker/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.

Docker Desktopのアプリを直接起動しましょう。
または、ターミナルで以下のコマンドを実行し、Docker Desktopを起動しましょう。

open -a Docker

3-2. コンテナが起動できていない

docker exec -it mycentos /bin/bashを実行時に以下のエラーが発生した場合、コンテナが起動できていません。
コンテナを起動してから再度コマンドを実行してみてください。

docker: Cannot connect to the Docker daemon at unix:///Users/user/.docker/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.

終わりに

コンテナの作成からコンテナ内に入るところまで基本的なdockerコマンドについてまとめました。
お役に立てば幸いです。

色々なイメージを使ったコンテナについてもまとめていこうと思います!