🐈

Docker コマンドチートシート

2024/12/20に公開

Docker コマンドチートシート

本記事では、Dockerの主要コンポーネントの関連性とよく使用するコマンドをまとめます。

環境

OS
$ sw_vers
ProductName:            macOS
ProductVersion:         15.2
BuildVersion:           24C101
Docker
$ docker version
Client:
 Version:           27.2.0
 API version:       1.47
 Go version:        go1.21.13
 Git commit:        3ab4256
 Built:             Tue Aug 27 14:14:45 2024
 OS/Arch:           darwin/arm64
 Context:           desktop-linux

Server: Docker Desktop 4.34.3 (170107)
 Engine:
  Version:          27.2.0
  API version:      1.47 (minimum version 1.24)
  Go version:       go1.21.13
  Git commit:       3ab5c7d
  Built:            Tue Aug 27 14:15:41 2024
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          1.7.20
  GitCommit:        8fc6bcff51318944179630522a095cc9dbf9f353
 runc:
  Version:          1.1.13
  GitCommit:        v1.1.13-0-g58aa920
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Dockerの主要コンポーネントの関係性

Dockerの主要コンポーネントは以下の関係性があります。

関係性
  • Dockerfile
    コンテナイメージを作成するための設計図です。
    ベースイメージの指定、必要なパッケージのインストール、環境変数の設定などを記述します。
  • Dockerイメージ
    Dockerfileからビルドされる読み取り専用のテンプレートです。
    アプリケーションの実行に必要な全ての依存関係を含みます。
  • Dockerコンテナ
    イメージから作成される実行環境です。
    独立した空間でアプリケーションを実行します。
  • ボリューム
    データの永続化を担当します。
    コンテナが削除されても、データを保持し続けることができます。
  • ネットワーク
    コンテナ間の通信を可能にします。
    異なるコンテナ間でのデータのやり取りを制御します。
  • Docker Compose
    複数のコンテナを定義し、管理するためのツールです。
    開発環境の構築などで活用されます。
  • Dockerレジストリ
    イメージを保存・共有するための場所です。
    DockerHubなどが代表的です。

主要コンポーネントの関係図

関係図

Docker Composeコマンド

ビルド・起動関連

docker-compose build [service] // 特定のサービスのみビルド
docker-compose up -d --build // ビルドしてからバックグラウンドで起動
docker-compose up --scale service=3 // 特定のサービスを複数起動
docker-compose -f docker-compose.prod.yml up -d // 特定の設定ファイルを指定して起動

状態確認

docker-compose ps // Compose管理のコンテナ一覧
docker-compose top // 実行中のプロセスを表示
docker-compose logs -f // 全コンテナのログをリアルタイムで表示
docker-compose logs -f [service] // 特定のサービスのログを表示
docker-compose config // Compose設定の確認(変数展開後の内容を表示)
docker-compose config --services // 定義されているサービス一覧を表示
docker-compose port [service] [port] // 特定のサービスのポートマッピングを表示

コンテナ操作

docker-compose start // 停止中のコンテナを起動
docker-compose stop // 実行中のコンテナを停止
docker-compose restart // 全コンテナの再起動
docker-compose pause // 全サービスの一時停止
docker-compose unpause // 全サービスの再開
docker-compose exec [service] [command] // 実行中のサービスでコマンドを実行
docker-compose run --rm [service] [command] // 新しいコンテナでコマンドを一回実行して削除

環境管理

docker-compose pull // 全サービスのイメージをプル
docker-compose push // 全サービスのイメージをプッシュ
docker-compose down // コンテナとネットワークを停止・削除
docker-compose down -v // ボリュームも含めて削除
docker-compose down --rmi all // イメージも含めて削除

システム管理

docker-compose events // コンテナのイベントをリアルタイムで表示
docker-compose version // バージョン情報の表示
docker-compose images // 使用中のイメージ一覧を表示

Dockerコマンド

イメージのビルド

docker build . // カレントディレクトリのDockerfileからビルド
docker build -t myapp:latest . // タグを指定してビルド
docker build --no-cache . // キャッシュを使用せずにビルド
docker build -f custom.dockerfile . // 特定のDockerfileを指定してビルド

コンテナの起動

docker run <image> // イメージからコンテナを作成・起動
docker run -d <image> // バックグラウンドで起動
docker run -p 8080:80 <image> // ポートマッピングを指定して起動
docker run -v /host/path:/container/path <image> // ボリュームをマウントして起動
docker run -e ENV_VAR=value <image> // 環境変数を設定して起動
docker run --name myapp <image> // コンテナに名前を付けて起動

コンテナへアクセス

docker exec -it <container> /bin/bash // コンテナ内でシェルを起動

一覧表示

docker ps -a // コンテナ一覧
docker images // イメージ一覧
docker network ls // ネットワーク一覧
docker volume ls // ボリューム一覧
docker builder prune --force // ビルドキャッシュ一覧

状態確認

docker stats // コンテナのリソース使用状況をリアルタイムで表示
docker top <container> // コンテナ内で実行中のプロセスを表示
docker inspect <container> // コンテナの詳細情報を表示
docker logs <container> // コンテナのログを表示
docker logs -f <container> // コンテナのリアルタイムログを表示

イメージ管理

docker pull <image> // イメージのダウンロード
docker push <image> // イメージのレジストリへのアップロード
docker tag <source> <target> // イメージのタグ付け
docker history <image> // イメージの履歴を表示

ネットワーク操作

docker network connect <network> <container> // コンテナをネットワークに接続
docker network disconnect <network> <container> // コンテナをネットワークから切断
docker network inspect <network> // ネットワークの詳細情報を表示

コンテナ操作

docker start <container> // 停止中のコンテナを起動
docker stop <container> // 実行中のコンテナを停止
docker restart <container> // コンテナを再起動
docker pause <container> // コンテナを一時停止
docker unpause <container> // 一時停止したコンテナを再開
docker rename <old> <new> // コンテナの名前を変更

ファイル転送

docker cp <container>:/path/to/file ./local/path // コンテナからホストにファイルをコピー
docker cp ./local/file <container>:/path/to/dest // ホストからコンテナにファイルをコピー

システム管理

docker info // Dockerシステムの情報表示
docker version // Dockerのバージョン情報表示
docker events // Dockerデーモンのイベントをリアルタイムで表示

削除操作

docker rm $(docker ps -a -q) // コンテナ全削除
docker rmi $(docker images -q) // イメージ全削除
docker network rm $(docker network ls -q) // ネットワーク全削除
docker volume rm $(docker volume ls -q) // ボリューム全削除
docker system prune -a // システム全削除(未使用のコンテナ、イメージ、ネットワーク、ビルドキャッシュ等)
株式会社ブレイクエッジ 技術ブログ

Discussion