container-ops
@chaterm · 收录于 1 周前
Docker 容器操作与管理
适合你,如果经常需要操作 Docker 容器
/ 下载安装
用别的 agent?下载 .zip 解压,把文件夹放进它的技能目录
Claude Code
~/.claude/skills/(项目级 .claude/skills/)Codex CLI
~/.codex/skills/Cursor自动读取上面两处目录
其他工具见其文档的「skills」目录;两个下载是同一份文件,只是名字不同
/ 通过 npx 安装 校验哈希
npx oh-my-skill add chaterm/terminal-skills/container-ops/ 通过 bash 安装
curl -fsSL https://oh-my-skill.com/install.sh | bash -s -- chaterm/terminal-skills/container-ops/ 已经装过?验证本机副本,不用重装
npx oh-my-skill verify chaterm/terminal-skills/container-ops安装目标可用 --agent / --scope 或 --to 明确指定;省略时只会在唯一已存在的 agent 目录上自动选择,零命中或多命中会停止并提示。content_hash 缺失或不一致均拒装。
48GitHub stars
~814上下文体积 · 单文件
镜像托管
怎么用
技能原文 SKILL.md
Docker 容器操作
概述
Docker 容器的日常操作,包括生命周期管理、资源限制、日志查看等。
容器生命周期
# 运行容器 docker run -d --name myapp nginx docker run -it --rm ubuntu bash # 常用参数 docker run -d \ --name myapp \ -p 8080:80 \ -v /host/path:/container/path \ -e ENV_VAR=value \ --restart unless-stopped \ nginx # 启停容器 docker start/stop/restart container_name docker pause/unpause container_name # 删除容器 docker rm container_name docker rm -f container_name # 强制删除 docker container prune # 清理停止的容器
容器查看
# 列出容器
docker ps # 运行中
docker ps -a # 所有
docker ps -q # 仅 ID
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
# 容器详情
docker inspect container_name
docker inspect -f '{{.NetworkSettings.IPAddress}}' container_name
# 资源使用
docker stats
docker stats container_name
docker top container_name
容器交互
# 进入容器 docker exec -it container_name /bin/bash docker exec -it container_name sh # 执行命令 docker exec container_name ls -la # 查看日志 docker logs container_name docker logs -f container_name # 实时跟踪 docker logs --tail 100 container_name # 最后 100 行 docker logs --since 1h container_name # 最近 1 小时
资源限制
# 内存限制 docker run -d --memory=512m nginx # CPU 限制 docker run -d --cpus=1.5 nginx docker run -d --cpu-shares=512 nginx # 更新运行中容器 docker update --memory=1g container_name docker update --cpus=2 container_name
文件操作
# 复制文件 docker cp container_name:/path/file ./local docker cp ./local container_name:/path/ # 查看文件变更 docker diff container_name # 导出容器 docker export container_name > container.tar docker import container.tar myimage:tag
常见场景
场景 1:调试容器
# 1. 查看容器状态 docker inspect container_name | jq '.[0].State' # 2. 查看日志 docker logs --tail 50 container_name # 3. 进入容器排查 docker exec -it container_name sh # 4. 查看进程 docker top container_name
场景 2:容器无法启动
# 查看退出原因 docker inspect container_name | jq '.[0].State.ExitCode' docker inspect container_name | jq '.[0].State.Error' # 查看日志 docker logs container_name # 以交互模式启动排查 docker run -it --entrypoint sh image_name
场景 3:批量操作
# 停止所有容器 docker stop $(docker ps -q) # 删除所有停止的容器 docker container prune -f # 删除所有容器 docker rm -f $(docker ps -aq)
故障排查
| 问题 | 排查方法 | |------|----------| | 容器退出 | docker logs, docker inspect | | 网络不通 | docker network inspect, 检查端口映射 | | 磁盘满 | docker system df, docker system prune | | 内存溢出 | docker stats, 检查 OOMKilled | | 启动慢 | 检查健康检查配置, 镜像大小 |
按 Apache-2.0 许可原样转载,未经改动 · 在 GitHub 查看 →
评论
登录即可评论;带「已验证安装」的,是发布者名下有本店的安装或持有记录。
…