关于 linux-docker
面向 Linux 上 Docker 和 Docker Compose 操作的技能,供构建、部署和保护容器化应用的开发者使用。内容涵盖镜像、容器生命周期、网络、存储、镜像仓库和安全设置。
主要功能
- 01通过 Dockerfile 构建镜像
- 02配置容器网络和卷
- 03管理容器生命周期
- 04推送和拉取镜像仓库内容
- 05设置容器安全选项
适用场景
- 01构建并运行应用容器
- 02用 Compose 部署多服务应用
- 03排查容器网络问题
- 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 查看输出。
具体使用示例
- 构建并运行简单的 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。 - 使用 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 等技能,以执行扩展操作。