词元之母TOK.MOM - 平台充值汇率 1:1 即 1 人民币充值到账 1 美元,支持一个 Key 调用近 600+ 海内外模型,限时特价模型低至 1 折,欢迎上岸!
| 来源 | 可选——使用 hermes skills install official/devops/docker-management 安装 |
| 路径 | optional-skills/devops/docker-management |
| 版本 | 1.0.0 |
| 作者 | sprmn24 |
| 许可证 | MIT |
| 平台 | linux, macos, windows |
| 标签 | docker, containers, devops, infrastructure, compose, images, volumes, networks, debugging |
docker 组(或使用 sudo)| 任务 | 命令 |
|---|---|
| 运行容器(后台) | docker run -d --name NAME IMAGE |
| 停止并删除 | docker stop NAME && docker rm NAME |
| 查看日志(跟踪) | docker logs --tail 50 -f NAME |
| 进入容器 Shell | docker exec -it NAME /bin/sh |
| 列出所有容器 | docker ps -a |
| 构建镜像 | docker build -t TAG . |
| Compose 启动 | docker compose up -d |
| Compose 停止 | docker compose down |
| 磁盘使用情况 | docker system df |
| 清理悬空资源 | docker image prune && docker container prune |
-d 后台运行,-it 交互式+tty,--rm 自动删除,-p 端口(宿主机:容器),-e 环境变量,-v 卷,--name 名称,--restart 重启策略。docker system prune -a --volumes。此命令会删除可能包含重要数据的命名卷。| 问题 | 原因 | 解决方法 |
|---|---|---|
| 容器立即退出 | 主进程结束或崩溃 | 检查 docker logs NAME,尝试 docker run -it --entrypoint /bin/sh IMAGE |
| "port is already allocated" | 该端口已被其他进程占用 | 使用 docker ps 或 lsof -i :PORT 查找 |
| "no space left on device" | Docker 磁盘已满 | 执行 docker system df 后针对性清理 |
| 无法连接到容器 | 容器内应用绑定到 127.0.0.1 | 应用须绑定到 0.0.0.0,检查 -p 映射 |
| 卷权限被拒绝 | 宿主机与容器 UID/GID 不匹配 | 使用 --user $(id -u):$(id -g) 或修复权限 |
| Compose 服务间无法互通 | 网络错误或服务名称错误 | 服务使用服务名作为主机名,检查 docker compose config |
| 构建缓存失效 | Dockerfile 层顺序错误 | 将不常变动的层放在前面(依赖在源码之前) |
| 镜像过大 | 未使用多阶段构建,缺少 .dockerignore | 使用多阶段构建,添加 .dockerignore |
docker ps(检查状态为 "Up")docker logs --tail 20 NAME(无报错)curl -s http://localhost:PORT 或 docker port NAMEdocker images | grep TAGdocker compose ps(所有服务状态为 "running" 或 "healthy")docker system df(对比清理前后)node_modules、.git、__pycache__ 等node:20-alpine 而非 node:latestUSER 指令以提升安全性python:3.12-slim 而非 python:3.12