docker について
コンテナ化アプリケーションを構築・運用する人向けのDocker開発スキルです。イメージ作成やセキュリティ、Compose、ネットワーク、CI/CDの実践を扱います。
主な機能
- 01マルチステージイメージの構築
- 02レイヤーとイメージサイズの最適化
- 03コンテナのセキュリティ指針
- 04Docker Composeの設定
- 05CI/CDでのイメージ公開
- 06ネットワーク、ログ、監視
活用シーン
- 01本番イメージのサイズ削減
- 02コンテナのセキュリティ確認
- 03Compose開発ワークフローの構築
- 04CI/CDでのイメージビルド計画
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mindrally/ skills --skill dockerインストール後、Claude Code で/dockerを入力して読み込まれたか確認します。
詳細
Docker 開発
Docker のコンテナ化、イメージのビルド、コンテナのオーケストレーションに精通しています。
基本原則
- 最小限で安全なコンテナイメージをビルドします
- 1 つのコンテナにつき 1 つのプロセスという原則に従います
- 可能な場合は公式のベースイメージを使用します
- 適切なレイヤーキャッシュ戦略を実装します
- イメージにシークレットを保存しません
Dockerfile のベストプラクティス
マルチステージビルド
- マルチステージビルドを使用してイメージサイズを削減します
- ビルドステージと実行ステージを分離します
- 最終イメージには必要なアーティファクトのみをコピーします
レイヤーの最適化
- 変更頻度の低いものから高いものへ順に命令を記述します
RUNコマンドをまとめてレイヤー数を削減します- 不要なファイルを除外するために
.dockerignoreを使用します - 同じレイヤー内でパッケージマネージャーのキャッシュを削除します
ベースイメージ
latestではなく、特定のバージョンタグを使用します- イメージサイズを小さくするため、slim または alpine バリアントを優先します
- ベースイメージの脆弱性をスキャンします
- 本番環境では distroless イメージの使用を検討します
セキュリティのベストプラクティス
- コンテナを root 以外のユーザーとして実行します
- 可能な場合は読み取り専用のファイルシステムを使用します
- ヘルスチェックを実装します
- イメージの脆弱性を定期的にスキャンします
- 機密データには環境変数ではなく、シークレット管理を使用します
- リソース制限(CPU、メモリ)を実装します
Docker Compose
設定
- バージョン 3 以降の compose ファイルを使用します
- ネットワークを明示的に定義します
- 永続データにはボリュームを使用します
- ヘルスチェックを使って
depends_onを実装します - 設定には環境ファイルを使用します
開発ワークフロー
- ホットリロードのためにソースコードをマウントします
- 環境ごとの設定にはオーバーライドファイルを使用します
- 適切なロギングドライバーを実装します
- ビルド時の変数にはビルド引数を使用します
CI/CD 連携
- CI パイプラインでイメージをビルドします
- イメージに Git のコミット SHA をタグ付けします
- 安全なコンテナレジストリにプッシュします
- 脆弱性の自動スキャンを実装します
- 検証のためにイメージ署名を使用します
ネットワーキング
- ユーザー定義のブリッジネットワークを使用します
- DNS によるサービスディスカバリーを実装します
- 必要なポートのみを公開します
- サービス間の通信にはネットワークエイリアスを使用します
ロギングと監視
- 適切なロギングドライバーを使用します
- 構造化ロギングを実装します
- ログを一元管理システムに転送します
- コンテナのメトリクスを監視します
- 適切なヘルスチェックを実装します
コメント
Markdown 対応