mcpField
L
linux-docker

linux-docker

github.com/alphaonedev云与 DevOps57 次安装
代码仓库

关于 linux-docker

面向 Linux 上 Docker 和 Docker Compose 操作的技能,供构建、部署和保护容器化应用的开发者使用。内容涵盖镜像、容器生命周期、网络、存储、镜像仓库和安全设置。

主要功能

  1. 01通过 Dockerfile 构建镜像
  2. 02配置容器网络和卷
  3. 03管理容器生命周期
  4. 04推送和拉取镜像仓库内容
  5. 05设置容器安全选项

适用场景

  1. 01构建并运行应用容器
  2. 02用 Compose 部署多服务应用
  3. 03排查容器网络问题
  4. 04加固 Linux 容器

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill linux-docker

安装后在 Claude Code 中输入/linux-docker确认已加载。

详细介绍

linux-docker

用途

此技能可让 AI 在 Linux 上执行 Docker 和 Docker Compose 操作,重点包括创建 Dockerfile、管理容器、配置网络和卷、处理生命周期事件、与镜像仓库交互以及强化安全性,以确保容器化应用高效且安全。

使用时机

当任务涉及应用容器化时,请使用此技能,例如从源代码构建镜像、使用 Compose 部署多服务应用、管理容器间通信的网络配置,或在 Linux 环境中保护容器免受漏洞影响。

核心能力

  • 使用 Dockerfile 构建和管理 Docker 镜像:指定基础镜像,使用 COPY/ADD 添加层,设置 ENTRYPOINT/CMD。
  • 配置网络:使用 bridge、host 或 overlay 网络,并搭配 --network bridge 等标志。
  • 处理卷:挂载主机目录或命名卷,例如 -v /host/path:/container/path。
  • 管理容器生命周期:使用可处理 SIGTERM 等信号的命令启动、停止和重启容器。
  • 与镜像仓库交互:通过身份验证将镜像推送到 Docker Hub 等仓库,或从中拉取镜像。
  • 强化安全性:使用 --security-opt no-new-privileges 等选项限制功能,并使用 Trivy 等工具扫描镜像。

使用模式

要构建镜像,请读取 Dockerfile,然后使用适当的上下文执行 docker build;对于 Compose,请解析 YAML 文件并运行 docker-compose up。始终检查所需依赖项,例如 Docker 守护进程是否正在运行。配置网络时,请在 Compose YAML 的 networks 键下指定网络。对于敏感数据,请使用环境变量,例如将 $DOCKER_REGISTRY_URL 注入容器环境变量。出于安全考虑,只要可行,就始终使用 --read-only 标志运行容器,以防止写入。

常用命令/API

  • 构建镜像:docker build -t myimage:1.0 .(自定义文件请使用 -f path/Dockerfile)。
  • 运行容器:docker run -d --name mycontainer -p 8080:80 -v /host/data:/app/data myimage:1.0。
  • 管理网络:先运行 docker network create mynet,然后运行 docker run --network mynet myimage。
  • 使用卷:运行 docker volume create myvolume,并使用 -v myvolume:/data 挂载。
  • 容器生命周期:docker start mycontainer、docker stop mycontainer、docker rm -f mycontainer。
  • 镜像仓库操作:docker login -u user -p $DOCKER_PASSWORD registry.example.com;使用 docker push myimage:1.0 推送。
  • Docker Compose:docker-compose -f docker-compose.yml up -d;在 YAML 中定义服务,例如:
    version: '3'
    services:
      web:
        image: nginx
        ports:
          - "80:80"
    
  • API 端点:使用 Docker Engine API,例如,使用 GET /containers/json 列出容器;通过包含 $DOCKER_API_KEY 的标头进行身份验证。

集成说明

在 Ubuntu 上通过 apt install docker.io 安装 Docker,确保集成正常。若要访问镜像仓库,请设置环境变量,例如 export DOCKER_REGISTRY_URL=registry.example.com 和 export DOCKER_API_KEY=yourkey。与其他技能结合使用时,例如在 CI/CD 流水线中,请使用 Compose 文件与 Jenkins 等工具协调操作;在 YAML 中通过 ${VAR} 引用外部配置。出于安全考虑,请始终从受信任的镜像仓库拉取镜像,并在运行命令中使用 --cap-drop ALL。若使用 Kubernetes 等编排工具,请使用 docker-compose config 导出 Compose 文件以进行转换。

错误处理

遇到权限错误时,请在命令前加上 sudo,例如 sudo docker run ...;使用 groups 检查用户是否属于 docker 组。拉取镜像失败时,请使用 echo $DOCKER_API_KEY 验证镜像仓库身份验证,然后重试 docker pull。遇到网络问题时,请使用 docker network inspect mynet 进行排查,并使用 docker network prune 修复。Dockerfile 构建出错时,请从日志中查找 "no such file or directory" 等信息并修正路径。Compose 出错时,请在运行前使用 docker-compose config 验证 YAML;对于 "service not found",常见的修复方法是检查缩进。请始终使用 docker ps -a 检查正在运行或故障的容器,并使用 docker logs mycontainer 查看输出。

具体使用示例

  1. 构建并运行简单的 Nginx 容器:首先,创建一个 Dockerfile,其中包含 FROM nginx:alpine; COPY index.html /usr/share/nginx/html;。然后,构建镜像:docker build -t mynginx .。安全地运行:docker run -d --name webserver -p 8080:80 --read-only mynginx。访问 localhost:8080。
  2. 使用 Compose 编排 Web 应用:创建一个 docker-compose.yml 文件:
    version: '3'
    services:
      db:
        image: postgres
        volumes:
          - dbdata:/var/lib/postgresql/data
      web:
        image: mynginx
        ports:
          - "8080:80"
    volumes:
      dbdata:
    
    然后,启动:docker-compose up -d。扩展 web 服务:docker-compose up -d --scale web=3。

图关系

  • 关联对象:linux cluster(父级)。
  • 相关技能:基于标签 ["docker", "containers", "compose", "registry"];链接到 container-management 或 linux-networking 等技能,以执行扩展操作。

评论

支持 Markdown