はじめに
久々にDockerを触ったら、基本的なコマンドすらすっかり忘れてしまっていたので、備忘録としてDockerの基本的なコマンドをまとめてみました。
1. イメージ用コマンド
1-1. イメージの表示
Dockerイメージを一覧表示する
docker image ls
1-2. イメージのダウンロード
-
docker pullは、Docker Hubから所望のイメージをダウンロードします。
Docker Hubからイメージをダウンロードする
docker pull {イメージ名}
-
イメージ名:バージョンと指定することで、イメージのバージョンを指定してpullすることもできます。
Docker Hubからhttpd-2.4.68のイメージをダウンロードする
docker pull httpd:2.4.68
1-3. Dockerfileからイメージの構築
-
docker buildは、Dockerfileからイメージを構築します。 - ここでは
docker build .とカレントディレクトリを指定しているため、カレントディレクトリのDockerfileからイメージを構築します。
Dockerfileからイメージを構築する
docker build . -t {イメージ名}
1-4. イメージの削除
-
docker rmi {コンテナ名 or コンテナID}でも同様にイメージを削除できますが、現在はdocker image rmが推奨されているようです。
Dockerイメージを削除する
docker image rm {コンテナ名 or コンテナID}
2. コンテナ用コマンド
2-1. コンテナの表示
稼働中のDockerコンテナを一覧表示する
docker ps
全てのDockerコンテナを一覧表示する
docker ps -a
2-2. コンテナの実行
-
docker runは、新しいコンテナでコマンドを実行します。 - ここでは
-p 10088:80としており、ホスト(※ここではWindows機)の10088番ポートをコンテナの80番ポートと紐付けて起動しています。
DockerイメージからDockerコンテナを起動する
docker run --{コンテナ名} -p 10088:80 -it {イメージ名}
2-3. コンテナの起動
-
docker startは、停止したコンテナを起動します。
既存のDockerコンテナを起動する
docker start {コンテナ名 or コンテナID}
複数のDockerコンテナをまとめて起動する
docker start {コンテナAの名称 or ID} {コンテナBの名称 or ID} {コンテナCの名称 or ID} ...
2-4. コンテナの停止
-
docker stopは、実行中のコンテナを停止します。
Dockerコンテナを停止する
docker stop {コンテナ名 or コンテナID}
複数のDockerコンテナをまとめて停止する
docker stop {コンテナAの名称 or ID} {コンテナBの名称 or ID} {コンテナCの名称 or ID} ...
-
docker killは、実行中のコンテナを強制停止します。
Dockerコンテナを強制終了する
docker kill {コンテナ名 or コンテナID}
複数のDockerコンテナをまとめて強制終了する
docker kill {コンテナAの名称 or ID} {コンテナBの名称 or ID} {コンテナCの名称 or ID} ...
2-5. コンテナの削除
- コンテナを削除する場合、事前にコンテナを停止もしくは強制終了しておく必要があります。
Dockerコンテナを削除する
docker rm {コンテナ名 or コンテナID}
複数のDockerコンテナをまとめて削除する
docker rm {コンテナAの名称 or ID} {コンテナBの名称 or ID} {コンテナCの名称 or ID} ...
Dockerコンテナを一括削除する
docker container prune
2-6. コンテナへの接続
-
-itは--interactive(標準入力を受け付ける)と--tty(疑似TTYを割り当てる)を組み合わせたオプションで、これによりシェルコマンドを入力できるようになります。
コンテナへ接続する(Linux系コンテナの場合)
// bashが使える環境
docker exec -it {コンテナ名 or コンテナID} bash
// bashが使えない環境
docker exec -it {コンテナ名 or コンテナID} sh
- Windowsのコンテナの場合は、
cmdかpowershellのいずれかを指定します。- PowerShellを使いたい時は
powershellを指定します。
- PowerShellを使いたい時は
コンテナへ接続する(Windows系コンテナの場合)
// コマンドプロンプトを使う場合
docker exec -it {コンテナ名 or コンテナID} cmd
// PowerShellを使う場合
docker exec -it {コンテナ名 or コンテナID} powershell