1. Docker入门必备:为什么需要命令速查表?
刚接触Docker的新手常会遇到这样的困境:明明看过教程,实际操作时却记不住命令格式;面对容器管理、镜像操作等场景时,总要反复查阅文档。这正是整理这份速查表的初衷——把碎片化的命令按实际使用场景归类,形成肌肉记忆式的操作指南。
我在最初使用Docker部署项目时,曾因为混淆了docker rm和docker rmi导致误删生产环境镜像。这份速查表不仅包含基础命令,还会标注哪些操作具有破坏性,帮助开发者避开我踩过的坑。
2. 环境准备与基础操作
2.1 安装与版本检查
# Ubuntu安装示例 sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io # 验证安装 docker --version docker info注意:生产环境建议安装特定版本而非最新版,避免兼容性问题。例如
apt-get install docker-ce=5:20.10.12~3-0~ubuntu-focal
2.2 服务管理命令
# 系统服务管理(Linux) sudo systemctl start docker # 启动 sudo systemctl enable docker # 开机自启 # 守护进程重启(不影响运行中的容器) sudo systemctl reload docker3. 镜像操作全指南
3.1 镜像生命周期管理
docker pull nginx:1.21 # 拉取指定版本 docker images # 查看本地镜像 docker rmi nginx:1.21 # 删除镜像 docker image prune # 清理悬空镜像避坑提示:删除镜像前确保没有容器依赖它,否则会报
conflict: unable to remove错误。先用docker ps -a检查。
3.2 镜像构建与导出
# 通过Dockerfile构建 docker build -t myapp:v1 . # 导出/导入镜像 docker save -o nginx.tar nginx:1.21 docker load -i nginx.tar参数解析:
-t:指定镜像标签(tag).:表示当前目录的Dockerfile-o/-i:输出/输入文件路径
4. 容器管理实战技巧
4.1 容器基础操作
docker run -d -p 8080:80 --name web nginx # 启动容器 docker ps -a # 查看所有容器 docker stop web # 停止容器 docker start web # 启动已停止容器关键参数说明:
-d:后台运行(detach模式)-p:端口映射(主机端口:容器端口)--name:指定容器名称(否则自动生成)
4.2 容器调试技巧
docker logs -f web # 实时查看日志 docker exec -it web bash # 进入容器终端 docker inspect web # 查看容器详情经验之谈:
exec进入容器后,默认用户可能权限不足。加上-u root参数即可获得root权限,例如docker exec -it -u root web bash
5. 数据与网络配置
5.1 数据卷管理
docker volume create db_data # 创建数据卷 docker run -v db_data:/var/lib/mysql mysql # 挂载数据卷 docker volume inspect db_data # 查看卷详情5.2 网络配置实践
docker network create my_network docker run --network=my_network --name app1 myapp docker run --network=my_network --name app2 myapp典型应用场景:
- 自定义网络内的容器可以通过容器名互相访问(如
app1可直接ping通app2) - 默认的bridge网络不支持容器名解析,必须用
--link(已废弃)
6. 组合命令与系统维护
6.1 批量操作技巧
# 停止所有运行中的容器 docker stop $(docker ps -q) # 删除所有已停止容器 docker container prune # 清理未使用资源(镜像、容器、网络等) docker system prune -a危险操作警告:
prune -a会删除所有未被使用的资源,包括可能需要的缓存镜像。首次使用建议不加-a参数先预览。
6.2 资源监控命令
docker stats # 实时资源占用 docker top web # 查看容器进程 docker events --since 1h # 查看系统事件7. 常见问题速查手册
| 问题现象 | 排查命令 | 解决方案 |
|---|---|---|
| 端口冲突 | netstat -tulnp | grep 8080 | 修改-p参数或停止占用程序 |
| 磁盘空间不足 | docker system df | 执行docker system prune |
| 容器启动失败 | docker logs --tail 50 web | 根据日志修正配置 |
| 镜像拉取超时 | docker info | grep Registry | 配置镜像加速器 |
8. 进阶学习路径建议
掌握基础命令后,可以逐步尝试:
- 编写多阶段构建的Dockerfile
- 使用docker-compose编排多容器应用
- 配置CI/CD流水线中的镜像构建
- 学习Kubernetes等容器编排工具
我在迁移传统应用到容器环境时,发现最耗时的不是技术实现,而是确定合适的资源限制(CPU/内存)。建议初期就通过--cpus和--memory参数进行约束,例如:
docker run -d --cpus=1.5 --memory=2g myapp