docker について
Dockerホスト上でコンテナ、イメージ、Composeのワークフローを扱う人向けのスキルです。変更前の読み取り専用診断と破壊的コマンドへの安全策を重視し、詳細作業向けの分野別資料も備えています。
主な機能
- 01コンテナ、イメージ、Composeのワークフロー
- 02ホストとランタイムの診断スクリプト
- 03破壊的操作へのガードレール
- 04DockerfileとComposeの作成指針
- 05分野別のリファレンスとテンプレート
活用シーン
- 01異常終了するコンテナを診断する
- 02一般的なベストプラクティスに沿ってDockerfileを書く
- 03Composeのサービス構成を計画する
- 04Dockerリソース削除前に影響を確認する
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ greedychipmunk/ agent-skills --skill dockerインストール後、Claude Code で/dockerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
resources/ai-and-agents.mdcloud-and-remote.mdcompose.mdcontainers.mdcore.mdimages.mdinstall-and-setup.mdnetworking.mdregistry.mdsecurity.mdswarm.mdtroubleshooting.mdvolumes.mdscripts/doctor-docker.ps1install.ps1install.shprobe-docker.ps1templates/templates/compose-web-db/.dockerignorecompose.yamlDockerfiletemplates/templates/minimal-service/.dockerignoreapp.pycompose.yamlDockerfilerequirements.txttemplates/templates/multi-arch-buildx/build.cmddocker-bake.hclDockerfile詳細
Docker
このスキルを使用すると、Linux、macOS、Windows の Docker Desktop ホストで、Docker 関連の作業を再現性、安全性、速度を保ちながら進められます。
クイックスタート
- まず
scripts/probe-docker.ps1(Windows)またはdocker info/docker version(Linux/macOS)を実行し、環境の状態を確認します。 - 依頼を解決できる最小限のワークフローを選びます。
- このファイルの基本的なコンテナー/ビルド/Compose ワークフローで、タスクの約 80%をカバーできます。
- 特定の分野について詳しく調べる必要がある場合にのみ、リファレンスファイルを読み込みます。
- 定型コードを一から書く前に、
assets/templates/のスターターパックを再利用します。
- 変更を伴うコマンドを提案する前に、読み取り専用の診断を優先します。
- 破壊的なコマンド(
rm、prune、down -v、sandbox reset、ビルダー/キャッシュの削除)を実行する前に確認します。 - ドキュメントと実行時の挙動が異なる場合は、インストール済み 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 デスクトップ)
- ベースラインを確立する —
scripts/probe-docker.ps1 -Jsonを実行して、構造化された診断情報(CLI バージョン、コンテキスト、プラグインの利用可否、デーモンへの到達性)を取得します。 - 状態を変更する前に診断する —
scripts/doctor-docker.ps1を実行して、実行可能なチェックを行います。迅速なトリアージには-Quickを使用します。-IncludeScout/-IncludeOffloadは対象範囲に含まれる場合にのみ使用します。 - 対象を絞った操作を実行する — コンテナのライフサイクル、ビルドパイプライン、Compose のオーケストレーション、コンテキスト/Desktop の確認を行います。
- 根本原因ごとに調査結果を報告する — サンドボックス/ホストの権限境界、デーモン/サービスの状態、設定の不一致。
リソース一覧
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 を参照)。