Docker常用命令速查手册:容器运维七维指南
📦 一、容器生命周期管理
命令 | 参数说明 | 示例 |
---|---|---|
docker run 创建并启动容器 | -d 后台运行-p 宿主机:容器 端口映射-v 宿主机:容器 卷挂载--name 命名容器--rm 退出后自动删除 | docker run -d -p 8080:80 --name nginx nginx:latest |
docker start/stop/restart 启停容器 | -a 附加输出流-t 秒数 超时停止 | docker restart -t 10 my_container |
docker rm 删除容器 | -f 强制删除运行中容器-v 同时删除卷 | docker rm -fv old_container |
docker exec 执行命令 | -it 交互模式-e VAR=value 设置环境变量 | docker exec -it redis redis-cli |
️🪞 二、镜像操作
命令 | 说明 | 示例 |
---|---|---|
docker build 构建镜像 | -t 名称:标签 指定标签--no-cache 禁用缓存 | docker build -t myapp:v1 . |
docker pull/push 拉取/推送镜像 | -a 拉取所有版本--disable-content-trust 跳过验证 | docker push registry.mycorp.com/app:v2 |
docker images 列出镜像 | -q 只显示ID--digests 显示摘要 | docker images --filter "dangling=false" |
docker rmi 删除镜像 | -f 强制删除--no-prune 保留父层 | docker rmi $(docker images -q "temp_*") |
📊 三、监控与日志
命令 | 关键参数 | 使用场景 |
---|---|---|
docker ps | -a 显示所有容器-l 最新容器-s 显示大小 | docker ps -f "status=running" |
docker logs | -f 实时跟踪--tail N 末尾N行-t 显示时间戳 | docker logs -f --until=2m app |
docker stats | --no-stream 单次输出--format 自定义格式 | docker stats --format "{{.Container}} {{.CPUPerc}}" |
docker top | 无参数 | 查看容器进程树:docker top nginx |
🌐 四、网络管理
命令 | 功能 | 示例 |
---|---|---|
docker network create | 创建网络--subnet 指定子网--driver 驱动类型 | docker network create --subnet=172.20.0.0/24 mynet |
docker network connect | 容器加入网络--ip 指定IP | docker network connect --ip 172.20.0.5 mynet web |
docker network inspect | 查看网络详情 | docker network inspect -f '{{.IPAM.Config}}' bridge |
💾 五、数据卷管理
命令 | 说明 | 实战技巧 |
---|---|---|
docker volume create | 创建具名卷--driver 指定驱动 | docker volume create --opt type=nfs app_data |
docker volume ls | 列出卷-q 仅显示名称 | 清理未使用卷:docker volume prune |
docker cp | 宿主机⇄容器文件复制 | docker cp config.yml app:/etc/app/ |
🛠️ 六、系统维护
命令 | 用途 | 重要参数 |
---|---|---|
docker system prune | 清理资源 | -a 删除未使用镜像--volumes 删除卷 |
docker info | 显示系统信息 | -f json 输出JSON格式 |
docker update | 更新容器配置 | --cpus 2 限制CPU--memory 512m 限制内存 |
📝 附:组合命令示例
# 批量停止所有容器
docker stop $(docker ps -q)# 构建镜像并推送到仓库
docker build -t myrepo/app:v3 . && docker push myrepo/app:v3# 备份MySQL数据到宿主机
docker run --rm -v mysql_data:/volume -v $PWD:/backup alpine tar czf /backup/mysql-$(date +%Y%m%d).tar.gz /volume
⚠️ 七、安全最佳实践
- 非root用户运行:
docker run --user 1000:1000 python
- 只读文件系统:
docker run --read-only -v /tmp:/tmp app
- 资源限制:
docker run --cpus=1.5 --memory=1g app
- 扫描漏洞:
docker scan nginx:latest
完整文档:Docker Official Docs