こんな人に読んでもらいたい
- 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コマンドについてまとめました。
お役に立てば幸いです。
色々なイメージを使ったコンテナについてもまとめていこうと思います!
