jpskill.com
💼 ビジネス コミュニティ

docker-helper

DockerやDocker Composeを用いたコンテナの構築、実行、デバッグ、最適化など、あらゆる操作をサポートするSkill。

📜 元の英語説明(参考)

Docker and Docker Compose mastery for containers, images, networks, volumes, and debugging. Use when user asks to "build a container", "run docker", "debug container", "write dockerfile", "docker compose up", "check container logs", "optimize docker image", or any container operations.

🇯🇵 日本人クリエイター向け解説

一言でいうと

DockerやDocker Composeを用いたコンテナの構築、実行、デバッグ、最適化など、あらゆる操作をサポートするSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-17
取得日時
2026-05-17
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

Docker Helper

Docker と Docker Compose の必須コマンドとパターンです。

コンテナ操作

# コンテナの実行
docker run -d --name myapp -p 8080:80 nginx
docker run -it --rm ubuntu bash  # 対話型、自動削除

# ボリュームと環境変数を使用
docker run -d \
  -v $(pwd):/app \
  -e NODE_ENV=production \
  --name myapp \
  node:18 npm start

# コンテナの一覧表示
docker ps          # 実行中
docker ps -a       # すべて

# ログ
docker logs myapp
docker logs -f myapp        # 追跡
docker logs --tail 100 myapp

# コンテナ内での実行
docker exec -it myapp bash
docker exec -it myapp sh    # Alpine

# 停止/削除
docker stop myapp
docker rm myapp
docker rm -f myapp  # 強制

イメージ操作

# ビルド
docker build -t myapp:latest .
docker build -t myapp:v1.0 -f Dockerfile.prod .

# 一覧表示/削除
docker images
docker rmi myapp:latest
docker image prune -a  # 未使用のものを削除

# タグ付け/プッシュ
docker tag myapp:latest registry.io/myapp:latest
docker push registry.io/myapp:latest

Docker Compose

# サービスの開始
docker compose up -d
docker compose up -d --build  # 再ビルド

# 停止
docker compose down
docker compose down -v  # ボリュームを削除

# ログ
docker compose logs -f
docker compose logs -f web

# スケール
docker compose up -d --scale web=3

# 実行
docker compose exec web bash

Compose ファイルのパターン

# docker-compose.yml
services:
  web:
    build: .
    ports:
      - "3000:3000"
    volumes:
      - .:/app
      - /app/node_modules
    environment:
      - NODE_ENV=development
    depends_on:
      - db

  db:
    image: postgres:15
    volumes:
      - postgres_data:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: secret

volumes:
  postgres_data:

デバッグ

# コンテナの検査
docker inspect myapp
docker inspect --format '{{.NetworkSettings.IPAddress}}' myapp

# リソース使用量
docker stats
docker stats myapp

# コンテナ内のプロセス
docker top myapp

# ファイルシステムの変更
docker diff myapp

# ファイルのコピー
docker cp myapp:/app/file.txt ./
docker cp ./file.txt myapp:/app/

クリーンアップ

# 停止したコンテナを削除
docker container prune

# 未使用のイメージを削除
docker image prune -a

# 未使用のボリュームを削除
docker volume prune

# 未使用のものをすべて削除
docker system prune -a --volumes

Dockerfile のベストプラクティス

# 特定のタグを使用
FROM node:18-alpine

# 作業ディレクトリを設定
WORKDIR /app

# まずパッケージファイルをコピー (レイヤーキャッシュ)
COPY package*.json ./
RUN npm ci --only=production

# ソースをコピー
COPY . .

# 非ルートユーザー
RUN addgroup -g 1001 appgroup && \
    adduser -S -u 1001 -G appgroup appuser
USER appuser

# ポートを公開
EXPOSE 3000

# ヘルスチェック
HEALTHCHECK --interval=30s --timeout=3s \
  CMD wget -q --spider http://localhost:3000/health || exit 1

CMD ["node", "server.js"]

参照

マルチステージビルド、ネットワーキング、最適化については、references/advanced.md を参照してください。

📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Docker Helper

Essential Docker and Docker Compose commands and patterns.

Container Operations

# Run container
docker run -d --name myapp -p 8080:80 nginx
docker run -it --rm ubuntu bash  # Interactive, auto-remove

# With volume and env
docker run -d \
  -v $(pwd):/app \
  -e NODE_ENV=production \
  --name myapp \
  node:18 npm start

# List containers
docker ps          # Running
docker ps -a       # All

# Logs
docker logs myapp
docker logs -f myapp        # Follow
docker logs --tail 100 myapp

# Exec into container
docker exec -it myapp bash
docker exec -it myapp sh    # Alpine

# Stop/remove
docker stop myapp
docker rm myapp
docker rm -f myapp  # Force

Image Operations

# Build
docker build -t myapp:latest .
docker build -t myapp:v1.0 -f Dockerfile.prod .

# List/remove
docker images
docker rmi myapp:latest
docker image prune -a  # Remove unused

# Tag/push
docker tag myapp:latest registry.io/myapp:latest
docker push registry.io/myapp:latest

Docker Compose

# Start services
docker compose up -d
docker compose up -d --build  # Rebuild

# Stop
docker compose down
docker compose down -v  # Remove volumes

# Logs
docker compose logs -f
docker compose logs -f web

# Scale
docker compose up -d --scale web=3

# Exec
docker compose exec web bash

Compose File Pattern

# docker-compose.yml
services:
  web:
    build: .
    ports:
      - "3000:3000"
    volumes:
      - .:/app
      - /app/node_modules
    environment:
      - NODE_ENV=development
    depends_on:
      - db

  db:
    image: postgres:15
    volumes:
      - postgres_data:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: secret

volumes:
  postgres_data:

Debugging

# Container inspection
docker inspect myapp
docker inspect --format '{{.NetworkSettings.IPAddress}}' myapp

# Resource usage
docker stats
docker stats myapp

# Processes in container
docker top myapp

# Filesystem changes
docker diff myapp

# Copy files
docker cp myapp:/app/file.txt ./
docker cp ./file.txt myapp:/app/

Cleanup

# Remove stopped containers
docker container prune

# Remove unused images
docker image prune -a

# Remove unused volumes
docker volume prune

# Remove everything unused
docker system prune -a --volumes

Dockerfile Best Practices

# Use specific tags
FROM node:18-alpine

# Set working directory
WORKDIR /app

# Copy package files first (layer caching)
COPY package*.json ./
RUN npm ci --only=production

# Copy source
COPY . .

# Non-root user
RUN addgroup -g 1001 appgroup && \
    adduser -S -u 1001 -G appgroup appuser
USER appuser

# Expose port
EXPOSE 3000

# Health check
HEALTHCHECK --interval=30s --timeout=3s \
  CMD wget -q --spider http://localhost:3000/health || exit 1

CMD ["node", "server.js"]

Reference

For multi-stage builds, networking, and optimization: references/advanced.md