よく利用するDockerコマンドをまとめておきます。
dockerコマンド実行時にsudoを削除する方法
dockerコマンドを利用するユーザーを、dockerグループに入れます。下記はカレントユーザーをdockerグループに追加しています。
sudo usermod -a -G docker $USER
Dockerイメージのビルド・削除等
イメージのビルド
docker build . -t image_name:tag
イメージの確認
docker images
イメージの削除
docker rmi <image id>
danglingイメージ(Noneのイメージ)を削除
docker image prune
イメージのsha256ハッシュ値の獲得
docker inspect --format='{{.RepoDigests}}' <image id>
Dockerコンテナの起動・停止・アタッチ
色々なコンテナの起動方法
# -i:アタッチしていなくても、標準入力を開き続ける
# -t:TTYの割り当て
# --rm:コンテナ終了時に削除する
docker run -it --rm <docker_image>:<tag>
# CMDを強制上書きして、/bin/bashを起動
docker run -it --rm <docker_image>:<tag> /bin/bash
# ローカルファイルをDockerコンテナにマウントして(-v)、
# ローカルポートをDockerポートと結びつけ(-p)、
# 環境変数を定義する(--env)
docker run -it --rm \
-v /local/path:/docker/container/path \
-p 8080:8080 \
--env ENV_VAR="hoge" \
<docker_image>:<tag>
コンテナの停止とアタッチ
# 起動中のコンテナからコンテナを終了させずに抜ける
# ctrl+pのあとにq
# コンテナにアタッチ
$ docker attach <container_id>
# 停止しているコンテナにアタッチ
$ docker start -ai <container_id>
データボリューム
データボリュームの一覧表示
docker volume ls
データボリュームの削除
docker volume rm <volume name>
名前付きボリュームをコンテナにアタッチ
docker run -v <named_volume>:/mnt/named_volume <docker_image>:<tag>
Docker Compose
バックグラウンドで実行する
docker compose up -d
コンテナの停止
docker compose down
特定のサービスのログを確認
docker compose logs <service name>
一部のサービスのみを対象に起動と停止
対象のサービスを終了
docker compose rm -fsv <service name>
対象のサービスを開始
docker compose up -d <service name>