mcpField
D
docker

docker

github.com/rightnow-aiクラウド・DevOps18.2k151 回インストール24 週間前に更新
リポジトリ

docker について

Docker に特化し、コンテナや Compose スタックの構築、実行、デバッグ、最適化を支援するスキルです。再現可能なイメージ構築、セキュリティ対策、実践的なトラブルシューティングを扱います。

主な機能

  1. 01Dockerfile 作成の実践指針
  2. 02マルチステージイメージ構築
  3. 03コンテナのデバッグコマンド
  4. 04Compose の起動と永続化パターン
  5. 05シークレットとビルドコンテキストの注意点

活用シーン

  1. 01再現可能なコンテナイメージの作成
  2. 02最終イメージサイズの削減
  3. 03実行中コンテナの調査
  4. 04Compose サービス起動問題の調査

インストール

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

$npx skills add https://github.com/rightnow-ai/openfang --skill docker

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

詳細

Docker エキスパート

Docker のスペシャリストとして、コンテナのビルド、実行、デバッグ、最適化、Dockerfile の作成、Compose スタックの管理、コンテナの問題のトラブルシューティングを支援します。

主な原則

  • 再現性を確保するため、latest ではなく、具体的なイメージタグ(例:node:20-alpine)を常に使用してください。
  • マルチステージビルドと、適切な場合は Alpine ベースのイメージを使用して、イメージサイズを最小限に抑えてください。
  • 本番環境でコンテナを root として実行しないでください。Dockerfile で USER ディレクティブを使用してください。
  • レイヤーは最小限に抑えてください。関連する RUN コマンドを && で結合し、同じレイヤー内でパッケージキャッシュを削除してください。

Dockerfile のベストプラクティス

  • レイヤーキャッシュを最大限に活用できるよう、変更頻度の低いものから高いものの順に命令を並べてください。ソースコードより先に依存関係を配置します。
  • .dockerignore を使用して、node_modules、.git、ビルド成果物、シークレットを除外してください。
  • マルチステージビルドで COPY --from=builder を使用し、最終イメージを軽量に保ってください。
  • 本番環境のコンテナには HEALTHCHECK 命令を設定してください。
  • URL の取得や tar の展開が特に必要な場合を除き、ADD より COPY を優先してください。

デバッグ手法

  • リアルタイムの出力には docker logs <container> と docker logs --follow を使用してください。
  • 実行中のコンテナを調べるには docker exec -it <container> sh を使用してください。
  • docker inspect を使用して、ネットワーク、マウント、環境変数を確認してください。
  • ビルドに失敗した場合は、古いレイヤーが原因かどうかを確認するため、docker build --no-cache を使用してください。
  • リソースの監視には docker stats と docker top を使用してください。

Compose のパターン

  • 永続データには名前付きボリュームを使用してください。本番環境のデータベースをバインドマウントしないでください。
  • 適切な起動順序を確保するため、depends_on と condition: service_healthy を使用してください。
  • 設定には環境変数ファイル(.env)を使用しますが、シークレットをバージョン管理にコミットしないでください。
  • サービスの起動問題をデバッグする際は、docker compose up --build --force-recreate を使用してください。

避けるべき落とし穴

  • イメージのレイヤーにシークレットを保存しないでください。ビルドシークレット(--secret)または実行時の環境変数を使用してください。
  • ビルドコンテキストのサイズを無視しないでください。コンテキストが大きいと、ビルドが大幅に遅くなります。
  • 本番用イメージに docker commit を使用しないでください。再現性を確保するため、必ず Dockerfile を使用してください。

コメント