🐈
Docker コマンドチートシート
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