mcpField
D
docker

docker

github.com/greedychipmunkクラウド・DevOps2441 回インストール1 週間前に更新
リポジトリ

docker について

Dockerホスト上でコンテナ、イメージ、Composeのワークフローを扱う人向けのスキルです。変更前の読み取り専用診断と破壊的コマンドへの安全策を重視し、詳細作業向けの分野別資料も備えています。

主な機能

  1. 01コンテナ、イメージ、Composeのワークフロー
  2. 02ホストとランタイムの診断スクリプト
  3. 03破壊的操作へのガードレール
  4. 04DockerfileとComposeの作成指針
  5. 05分野別のリファレンスとテンプレート

活用シーン

  1. 01異常終了するコンテナを診断する
  2. 02一般的なベストプラクティスに沿ってDockerfileを書く
  3. 03Composeのサービス構成を計画する
  4. 04Dockerリソース削除前に影響を確認する

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/greedychipmunk/agent-skills --skill docker

インストール後、Claude Code で/dockerを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

resources/
ai-and-agents.md
cloud-and-remote.md
compose.md
containers.md
core.md
images.md
install-and-setup.md
networking.md
registry.md
security.md
swarm.md
troubleshooting.md
volumes.md
scripts/
doctor-docker.ps1
install.ps1
install.sh
probe-docker.ps1
templates/templates/compose-web-db/
.dockerignore
compose.yaml
Dockerfile
templates/templates/minimal-service/
.dockerignore
app.py
compose.yaml
Dockerfile
requirements.txt
templates/templates/multi-arch-buildx/
build.cmd
docker-bake.hcl
Dockerfile

詳細

Docker

このスキルを使用すると、Linux、macOS、Windows の Docker Desktop ホストで、Docker 関連の作業を再現性、安全性、速度を保ちながら進められます。

クイックスタート

  1. まず scripts/probe-docker.ps1(Windows)または docker info / docker version(Linux/macOS)を実行し、環境の状態を確認します。
  2. 依頼を解決できる最小限のワークフローを選びます。
    • このファイルの基本的なコンテナー/ビルド/Compose ワークフローで、タスクの約 80%をカバーできます。
    • 特定の分野について詳しく調べる必要がある場合にのみ、リファレンスファイルを読み込みます。
    • 定型コードを一から書く前に、assets/templates/ のスターターパックを再利用します。
  3. 変更を伴うコマンドを提案する前に、読み取り専用の診断を優先します。
  4. 破壊的なコマンド(rm、prune、down -v、sandbox reset、ビルダー/キャッシュの削除)を実行する前に確認します。
  5. ドキュメントと実行時の挙動が異なる場合は、インストール済み CLI の挙動を優先し、具体的なバージョンとともに注意点を記載します。

インテントルーター(段階的な情報開示)

現在の依頼に必要なリファレンスファイルのみ読み込みます。

  • resources/install-and-setup.md — Docker Desktop(macOS/Windows)または Docker Engine(Linux)のインストールと、インストール後の設定。
  • resources/core.md — Windows Desktop を優先した診断、コンテキスト管理、Desktop のステータス。
  • resources/containers.md — run/exec/logs/inspect/debug/stats とクラッシュのトリアージ。
  • resources/images.md — Dockerfile の作成、マルチステージのパターン、Buildx/Bake。
  • resources/compose.md — Compose の作成とサービスのオーケストレーション。
  • resources/networking.md — bridge/overlay/macvlan、DNS、ポート公開。
  • resources/volumes.md — 名前付きボリューム、バインドマウント、バックアップ/復元のパターン。
  • resources/registry.md — ログイン/タグ付け/プッシュ/プルとレジストリの適切な管理。
  • resources/swarm.md — swarm の初期化、サービス、スタック、安全な操作。
  • resources/troubleshooting.md — 体系的なデバッグとエラーの分類。
  • resources/security.md — Scout、SBOM、DHI、シークレットの受け渡し、サプライチェーンのチェック。
  • resources/ai-and-agents.md — Docker AI、agent/cagent、MCP ツールキット、モデルランナー、サンドボックス。
  • resources/cloud-and-remote.md — Offload、Build Cloud、リモートビルダーとコンテキスト。

クイックコマンドリファレンス

これらのコマンドで、日常的な Docker の使用の約 80%をカバーできます。リファレンスファイルを読み込まず、そのまま使用してください。

# Container lifecycle
docker run -d --name myapp -p 8080:80 nginx          # Run detached with port mapping
docker run -it --rm ubuntu bash                       # Interactive, auto-remove on exit
docker ps                                             # List running containers
docker ps -a                                          # All containers (incl. stopped)
docker stop myapp && docker rm myapp                  # Stop and remove
docker logs myapp -f                                  # Follow logs
docker logs myapp --tail=100                          # Last 100 lines
docker exec -it myapp bash                            # Shell into running container
docker inspect myapp                                  # Full metadata (JSON)
docker stats                                          # Live resource usage

# Images
docker build -t myapp:latest .                        # Build from Dockerfile in cwd
docker pull nginx:alpine                              # Pull image
docker images                                         # List local images
docker rmi myapp:latest                               # Remove image
docker tag myapp:latest myregistry/myapp:v1.2         # Tag for push

# Compose (v2 — no hyphen)
docker compose config                                 # Validate and view merged config
docker compose up -d                                  # Start all services detached
docker compose down                                   # Stop and remove containers+networks
docker compose logs -f api                            # Follow logs for one service
docker compose exec api sh                            # Shell into service container
docker compose ps                                     # Service status
docker compose build --no-cache                       # Rebuild all images

# Buildx / multi-platform
docker buildx ls
docker buildx build --platform linux/amd64,linux/arm64 -t myorg/myapp:v1 --push .

# System
docker system df                                      # Disk usage breakdown
docker system prune                                   # Remove unused objects (see safety)

安全性マトリクス

コマンドまたはパターン必要な安全対策
docker system prune / prune -aまず docker system df を実行します。削除される内容を要約してから、確認を求めます。
docker volume rmボリュームのデータが完全に削除されることを警告し、明示的な確認を求めます。
docker network rm削除する前に接続中のコンテナーを確認し、影響を受けるサービスを一覧表示します。
docker rm -fコンテナー名を正確に確認します。対象を一覧表示せずに一括で強制削除することは避けます。
docker rmi -f先に依存するコンテナー/イメージを確認し、影響を確認します。
docker swarm leave --forceマネージャーへの影響を説明し、明示的な確認を求めます。
docker compose down -vデータベース/状態が失われるリスクを明示し、明示的な確認を求めます。
docker sandbox reset破壊的なリセットとして扱い、明示的な確認を求めます。
レジストリへの docker pushプッシュ前に送信先のタグ全体を確認します。
--privileged フラグ使用する前に、このフラグで許可される内容とリスクの理由を説明します。

Dockerfile の作成

Dockerfile の作成を依頼された場合は、常に以下のベストプラクティスをデフォルトで適用してください。

  • レイヤーの順序 — 変更頻度の低いもの(ベースイメージ、システム依存関係)を上に、変更頻度の高いもの(アプリケーションコード)を下に配置します。キャッシュの再利用を最大化できます。
  • マルチステージビルド — ビルドステージでコンパイルやインストールを行い、最小限のランタイムイメージには成果物だけをコピーします。
  • 非 root ユーザー — CMD の前に非 root ユーザーを作成し、そのユーザーに切り替えます。
  • 最小限のベースイメージ — alpine、distroless、または slim を優先します。システムパッケージが必要な場合のみ、フルイメージを使用します。
  • RUN コマンドをまとめる — 関連するコマンドを && でつなぎ、同じレイヤー内でパッケージキャッシュを削除します。
  • .dockerignore を必ず作成する — Dockerfile とあわせて作成します。

Dockerfile の完全なテンプレート(Node.js、Python、Go)と .dockerignore のパターンについては、resources/images.md を参照してください。

Docker Compose の作成

Compose ファイルでの主なパターン:

  • 依存先にヘルスチェックがある場合は、depends_on に condition: service_healthy を指定します。
  • 重要なデータには、名前のないバインドマウントではなく、必ず名前付きボリュームを定義します。
  • 外部アクセスが不要なサービスは、内部専用ネットワークに制限します。
  • 本番環境では restart: unless-stopped を設定し、開発ツール用コンテナでは省略します。
  • ディレクトリ名の衝突を避けるため、先頭に明示的な name: を設定します。

ヘルスチェックを含む Compose ファイルの完全なテンプレートについては、resources/compose.md を参照してください。

診断ワークフロー

コンテナがクラッシュする、または正常に動作しない場合:

docker ps -a                              # Find container and exit code
docker logs <name> --tail=100             # Last 100 lines (stderr included with 2>&1)
docker inspect <name>                     # Full JSON — check State, Config, Mounts
docker stats --no-stream                  # Snapshot of memory/CPU (check for OOM)
docker exec -it <name> sh                 # Shell in (if still running)
docker debug <name>                       # Debug sidecar, works on stopped containers
docker compose ps && docker compose logs --tail=50   # Compose: all services at once

終了コード:0 = 正常終了、1 = アプリケーションエラー、137 = OOM による強制終了、139 = セグメンテーション違反、143 = SIGTERM、125/126/127 = Docker/exec エラー。

コアワークフロー(Windows デスクトップ)

  1. ベースラインを確立する — scripts/probe-docker.ps1 -Json を実行して、構造化された診断情報(CLI バージョン、コンテキスト、プラグインの利用可否、デーモンへの到達性)を取得します。
  2. 状態を変更する前に診断する — scripts/doctor-docker.ps1 を実行して、実行可能なチェックを行います。迅速なトリアージには -Quick を使用します。-IncludeScout / -IncludeOffload は対象範囲に含まれる場合にのみ使用します。
  3. 対象を絞った操作を実行する — コンテナのライフサイクル、ビルドパイプライン、Compose のオーケストレーション、コンテキスト/Desktop の確認を行います。
  4. 根本原因ごとに調査結果を報告する — サンドボックス/ホストの権限境界、デーモン/サービスの状態、設定の不一致。

リソース一覧

  • scripts/probe-docker.ps1 — probe-docker.ps1 [-Json] [-IncludeExperimental] — 読み取り専用のホスト/ランタイムプローブ。
  • scripts/doctor-docker.ps1 — doctor-docker.ps1 [-Quick] [-IncludeOffload] [-IncludeScout] — 診断と推奨事項。
  • assets/templates/ — 最小限のサービス、Compose スタック、マルチアーキテクチャ Buildx 用の再利用可能なスターターパック。
  • resources/*.md — ドメインの詳細な説明(上記の Intent Router を参照)。

コメント