{
  "schemaVersion": "1.0",
  "item": {
    "slug": "docker-essentials",
    "name": "Docker Essentials",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/Arnarsson/docker-essentials",
    "canonicalUrl": "https://clawhub.ai/Arnarsson/docker-essentials",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/docker-essentials",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=docker-essentials",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "docker-essentials",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-02T15:40:26.270Z",
      "expiresAt": "2026-05-09T15:40:26.270Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=docker-essentials",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=docker-essentials",
        "contentDisposition": "attachment; filename=\"docker-essentials-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "docker-essentials"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/docker-essentials"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/docker-essentials",
    "agentPageUrl": "https://openagent3.xyz/skills/docker-essentials/agent",
    "manifestUrl": "https://openagent3.xyz/skills/docker-essentials/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/docker-essentials/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Docker Essentials",
        "body": "Essential Docker commands for container and image management."
      },
      {
        "title": "Running containers",
        "body": "# Run container from image\ndocker run nginx\n\n# Run in background (detached)\ndocker run -d nginx\n\n# Run with name\ndocker run --name my-nginx -d nginx\n\n# Run with port mapping\ndocker run -p 8080:80 -d nginx\n\n# Run with environment variables\ndocker run -e MY_VAR=value -d app\n\n# Run with volume mount\ndocker run -v /host/path:/container/path -d app\n\n# Run with auto-remove on exit\ndocker run --rm alpine echo \"Hello\"\n\n# Interactive terminal\ndocker run -it ubuntu bash"
      },
      {
        "title": "Managing containers",
        "body": "# List running containers\ndocker ps\n\n# List all containers (including stopped)\ndocker ps -a\n\n# Stop container\ndocker stop container_name\n\n# Start stopped container\ndocker start container_name\n\n# Restart container\ndocker restart container_name\n\n# Remove container\ndocker rm container_name\n\n# Force remove running container\ndocker rm -f container_name\n\n# Remove all stopped containers\ndocker container prune"
      },
      {
        "title": "Viewing logs",
        "body": "# Show logs\ndocker logs container_name\n\n# Follow logs (like tail -f)\ndocker logs -f container_name\n\n# Last 100 lines\ndocker logs --tail 100 container_name\n\n# Logs with timestamps\ndocker logs -t container_name"
      },
      {
        "title": "Executing commands",
        "body": "# Execute command in running container\ndocker exec container_name ls -la\n\n# Interactive shell\ndocker exec -it container_name bash\n\n# Execute as specific user\ndocker exec -u root -it container_name bash\n\n# Execute with environment variable\ndocker exec -e VAR=value container_name env"
      },
      {
        "title": "Inspection",
        "body": "# Inspect container details\ndocker inspect container_name\n\n# Get specific field (JSON path)\ndocker inspect -f '{{.NetworkSettings.IPAddress}}' container_name\n\n# View container stats\ndocker stats\n\n# View specific container stats\ndocker stats container_name\n\n# View processes in container\ndocker top container_name"
      },
      {
        "title": "Building images",
        "body": "# Build from Dockerfile\ndocker build -t myapp:1.0 .\n\n# Build with custom Dockerfile\ndocker build -f Dockerfile.dev -t myapp:dev .\n\n# Build with build args\ndocker build --build-arg VERSION=1.0 -t myapp .\n\n# Build without cache\ndocker build --no-cache -t myapp ."
      },
      {
        "title": "Managing images",
        "body": "# List images\ndocker images\n\n# Pull image from registry\ndocker pull nginx:latest\n\n# Tag image\ndocker tag myapp:1.0 myapp:latest\n\n# Push to registry\ndocker push myrepo/myapp:1.0\n\n# Remove image\ndocker rmi image_name\n\n# Remove unused images\ndocker image prune\n\n# Remove all unused images\ndocker image prune -a"
      },
      {
        "title": "Basic operations",
        "body": "# Start services\ndocker-compose up\n\n# Start in background\ndocker-compose up -d\n\n# Stop services\ndocker-compose down\n\n# Stop and remove volumes\ndocker-compose down -v\n\n# View logs\ndocker-compose logs\n\n# Follow logs for specific service\ndocker-compose logs -f web\n\n# Scale service\ndocker-compose up -d --scale web=3"
      },
      {
        "title": "Service management",
        "body": "# List services\ndocker-compose ps\n\n# Execute command in service\ndocker-compose exec web bash\n\n# Restart service\ndocker-compose restart web\n\n# Rebuild service\ndocker-compose build web\n\n# Rebuild and restart\ndocker-compose up -d --build"
      },
      {
        "title": "Networking",
        "body": "# List networks\ndocker network ls\n\n# Create network\ndocker network create mynetwork\n\n# Connect container to network\ndocker network connect mynetwork container_name\n\n# Disconnect from network\ndocker network disconnect mynetwork container_name\n\n# Inspect network\ndocker network inspect mynetwork\n\n# Remove network\ndocker network rm mynetwork"
      },
      {
        "title": "Volumes",
        "body": "# List volumes\ndocker volume ls\n\n# Create volume\ndocker volume create myvolume\n\n# Inspect volume\ndocker volume inspect myvolume\n\n# Remove volume\ndocker volume rm myvolume\n\n# Remove unused volumes\ndocker volume prune\n\n# Run with volume\ndocker run -v myvolume:/data -d app"
      },
      {
        "title": "System Management",
        "body": "# View disk usage\ndocker system df\n\n# Clean up everything unused\ndocker system prune\n\n# Clean up including unused images\ndocker system prune -a\n\n# Clean up including volumes\ndocker system prune --volumes\n\n# Show Docker info\ndocker info\n\n# Show Docker version\ndocker version"
      },
      {
        "title": "Common Workflows",
        "body": "Development container:\n\ndocker run -it --rm \\\n  -v $(pwd):/app \\\n  -w /app \\\n  -p 3000:3000 \\\n  node:18 \\\n  npm run dev\n\nDatabase container:\n\ndocker run -d \\\n  --name postgres \\\n  -e POSTGRES_PASSWORD=secret \\\n  -e POSTGRES_DB=mydb \\\n  -v postgres-data:/var/lib/postgresql/data \\\n  -p 5432:5432 \\\n  postgres:15\n\nQuick debugging:\n\n# Shell into running container\ndocker exec -it container_name sh\n\n# Copy file from container\ndocker cp container_name:/path/to/file ./local/path\n\n# Copy file to container\ndocker cp ./local/file container_name:/path/in/container\n\nMulti-stage build:\n\n# Dockerfile\nFROM node:18 AS builder\nWORKDIR /app\nCOPY package*.json ./\nRUN npm install\nCOPY . .\nRUN npm run build\n\nFROM nginx:alpine\nCOPY --from=builder /app/dist /usr/share/nginx/html"
      },
      {
        "title": "Useful Flags",
        "body": "docker run flags:\n\n-d: Detached mode (background)\n-it: Interactive terminal\n-p: Port mapping (host:container)\n-v: Volume mount\n-e: Environment variable\n--name: Container name\n--rm: Auto-remove on exit\n--network: Connect to network\n\ndocker exec flags:\n\n-it: Interactive terminal\n-u: User\n-w: Working directory"
      },
      {
        "title": "Tips",
        "body": "Use .dockerignore to exclude files from build context\nCombine RUN commands in Dockerfile to reduce layers\nUse multi-stage builds to reduce image size\nAlways tag your images with versions\nUse --rm for one-off containers\nUse docker-compose for multi-container apps\nClean up regularly with docker system prune"
      },
      {
        "title": "Documentation",
        "body": "Official docs: https://docs.docker.com/\nDockerfile reference: https://docs.docker.com/engine/reference/builder/\nCompose file reference: https://docs.docker.com/compose/compose-file/"
      }
    ],
    "body": "Docker Essentials\n\nEssential Docker commands for container and image management.\n\nContainer Lifecycle\nRunning containers\n# Run container from image\ndocker run nginx\n\n# Run in background (detached)\ndocker run -d nginx\n\n# Run with name\ndocker run --name my-nginx -d nginx\n\n# Run with port mapping\ndocker run -p 8080:80 -d nginx\n\n# Run with environment variables\ndocker run -e MY_VAR=value -d app\n\n# Run with volume mount\ndocker run -v /host/path:/container/path -d app\n\n# Run with auto-remove on exit\ndocker run --rm alpine echo \"Hello\"\n\n# Interactive terminal\ndocker run -it ubuntu bash\n\nManaging containers\n# List running containers\ndocker ps\n\n# List all containers (including stopped)\ndocker ps -a\n\n# Stop container\ndocker stop container_name\n\n# Start stopped container\ndocker start container_name\n\n# Restart container\ndocker restart container_name\n\n# Remove container\ndocker rm container_name\n\n# Force remove running container\ndocker rm -f container_name\n\n# Remove all stopped containers\ndocker container prune\n\nContainer Inspection & Debugging\nViewing logs\n# Show logs\ndocker logs container_name\n\n# Follow logs (like tail -f)\ndocker logs -f container_name\n\n# Last 100 lines\ndocker logs --tail 100 container_name\n\n# Logs with timestamps\ndocker logs -t container_name\n\nExecuting commands\n# Execute command in running container\ndocker exec container_name ls -la\n\n# Interactive shell\ndocker exec -it container_name bash\n\n# Execute as specific user\ndocker exec -u root -it container_name bash\n\n# Execute with environment variable\ndocker exec -e VAR=value container_name env\n\nInspection\n# Inspect container details\ndocker inspect container_name\n\n# Get specific field (JSON path)\ndocker inspect -f '{{.NetworkSettings.IPAddress}}' container_name\n\n# View container stats\ndocker stats\n\n# View specific container stats\ndocker stats container_name\n\n# View processes in container\ndocker top container_name\n\nImage Management\nBuilding images\n# Build from Dockerfile\ndocker build -t myapp:1.0 .\n\n# Build with custom Dockerfile\ndocker build -f Dockerfile.dev -t myapp:dev .\n\n# Build with build args\ndocker build --build-arg VERSION=1.0 -t myapp .\n\n# Build without cache\ndocker build --no-cache -t myapp .\n\nManaging images\n# List images\ndocker images\n\n# Pull image from registry\ndocker pull nginx:latest\n\n# Tag image\ndocker tag myapp:1.0 myapp:latest\n\n# Push to registry\ndocker push myrepo/myapp:1.0\n\n# Remove image\ndocker rmi image_name\n\n# Remove unused images\ndocker image prune\n\n# Remove all unused images\ndocker image prune -a\n\nDocker Compose\nBasic operations\n# Start services\ndocker-compose up\n\n# Start in background\ndocker-compose up -d\n\n# Stop services\ndocker-compose down\n\n# Stop and remove volumes\ndocker-compose down -v\n\n# View logs\ndocker-compose logs\n\n# Follow logs for specific service\ndocker-compose logs -f web\n\n# Scale service\ndocker-compose up -d --scale web=3\n\nService management\n# List services\ndocker-compose ps\n\n# Execute command in service\ndocker-compose exec web bash\n\n# Restart service\ndocker-compose restart web\n\n# Rebuild service\ndocker-compose build web\n\n# Rebuild and restart\ndocker-compose up -d --build\n\nNetworking\n# List networks\ndocker network ls\n\n# Create network\ndocker network create mynetwork\n\n# Connect container to network\ndocker network connect mynetwork container_name\n\n# Disconnect from network\ndocker network disconnect mynetwork container_name\n\n# Inspect network\ndocker network inspect mynetwork\n\n# Remove network\ndocker network rm mynetwork\n\nVolumes\n# List volumes\ndocker volume ls\n\n# Create volume\ndocker volume create myvolume\n\n# Inspect volume\ndocker volume inspect myvolume\n\n# Remove volume\ndocker volume rm myvolume\n\n# Remove unused volumes\ndocker volume prune\n\n# Run with volume\ndocker run -v myvolume:/data -d app\n\nSystem Management\n# View disk usage\ndocker system df\n\n# Clean up everything unused\ndocker system prune\n\n# Clean up including unused images\ndocker system prune -a\n\n# Clean up including volumes\ndocker system prune --volumes\n\n# Show Docker info\ndocker info\n\n# Show Docker version\ndocker version\n\nCommon Workflows\n\nDevelopment container:\n\ndocker run -it --rm \\\n  -v $(pwd):/app \\\n  -w /app \\\n  -p 3000:3000 \\\n  node:18 \\\n  npm run dev\n\n\nDatabase container:\n\ndocker run -d \\\n  --name postgres \\\n  -e POSTGRES_PASSWORD=secret \\\n  -e POSTGRES_DB=mydb \\\n  -v postgres-data:/var/lib/postgresql/data \\\n  -p 5432:5432 \\\n  postgres:15\n\n\nQuick debugging:\n\n# Shell into running container\ndocker exec -it container_name sh\n\n# Copy file from container\ndocker cp container_name:/path/to/file ./local/path\n\n# Copy file to container\ndocker cp ./local/file container_name:/path/in/container\n\n\nMulti-stage build:\n\n# Dockerfile\nFROM node:18 AS builder\nWORKDIR /app\nCOPY package*.json ./\nRUN npm install\nCOPY . .\nRUN npm run build\n\nFROM nginx:alpine\nCOPY --from=builder /app/dist /usr/share/nginx/html\n\nUseful Flags\n\ndocker run flags:\n\n-d: Detached mode (background)\n-it: Interactive terminal\n-p: Port mapping (host:container)\n-v: Volume mount\n-e: Environment variable\n--name: Container name\n--rm: Auto-remove on exit\n--network: Connect to network\n\ndocker exec flags:\n\n-it: Interactive terminal\n-u: User\n-w: Working directory\nTips\nUse .dockerignore to exclude files from build context\nCombine RUN commands in Dockerfile to reduce layers\nUse multi-stage builds to reduce image size\nAlways tag your images with versions\nUse --rm for one-off containers\nUse docker-compose for multi-container apps\nClean up regularly with docker system prune\nDocumentation\n\nOfficial docs: https://docs.docker.com/ Dockerfile reference: https://docs.docker.com/engine/reference/builder/ Compose file reference: https://docs.docker.com/compose/compose-file/"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Arnarsson/docker-essentials",
    "publisherUrl": "https://clawhub.ai/Arnarsson/docker-essentials",
    "owner": "Arnarsson",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/docker-essentials",
    "downloadUrl": "https://openagent3.xyz/downloads/docker-essentials",
    "agentUrl": "https://openagent3.xyz/skills/docker-essentials/agent",
    "manifestUrl": "https://openagent3.xyz/skills/docker-essentials/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/docker-essentials/agent.md"
  }
}