docker について
Docker に特化し、コンテナや Compose スタックの構築、実行、デバッグ、最適化を支援するスキルです。再現可能なイメージ構築、セキュリティ対策、実践的なトラブルシューティングを扱います。
主な機能
- 01Dockerfile 作成の実践指針
- 02マルチステージイメージ構築
- 03コンテナのデバッグコマンド
- 04Compose の起動と永続化パターン
- 05シークレットとビルドコンテキストの注意点
活用シーン
- 01再現可能なコンテナイメージの作成
- 02最終イメージサイズの削減
- 03実行中コンテナの調査
- 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 を使用してください。
コメント
Markdown 対応