docker 所有常用命令,配上思维导图,加图表显示
docker 所有常用命令,配上思维导图,加图表显示
- 一、容器生命周期管理
- 二、镜像操作
- 三、容器监控与日志
- 四、网络管理
- 五、数据卷与挂载
- 六、Docker Compose 常用命令
- 七、系统维护命令
- 八、实用技巧组合
- 停止所有容器
- 删除所有已停止容器
- 命令速查表
一、容器生命周期管理
命令 | 说明 | 示例 |
---|---|---|
docker run | 创建并启动容器 | docker run -d -p 80:80 --name nginx nginx:alpine |
docker start/stop/restart | 启动/停止/重启容器 | docker stop nginx |
docker rm | 删除容器 | docker rm -f nginx(强制删除运行中的容器) |
docker pause/unpause | 暂停/恢复容器进程 | docker pause nginx |
docker exec | 进入运行中的容器 | docker exec -it nginx sh |
docker update | 更新容器配置 | docker update --memory 512m nginx |
场景:快速重启服务
docker stop nginx && docker rm nginx && docker run -d -p 80:80 --name nginx nginx:alpine
二、镜像操作
命令 | 说明 | 示例 |
---|---|---|
docker build | 构建镜像 | docker build -t myapp:1.0 . |
docker pull/push | 拉取/推送镜像 | docker pull ubuntu:20.04 |
docker images | 列出本地镜像 | docker images --filter “dangling=true”(显示悬空镜像) |
docker rmi | 删除镜像 | docker rmi $(docker images -q)(删除所有镜像) |
docker save/load | 导出/导入镜像 | docker save myapp:1.0 > myapp.tar |
docker history | 查看镜像构建历史 | docker history nginx:alpine |
场景:清理无用镜像
docker image prune -a --filter "until=24h" # 删除24小时前的未使用镜像
三、容器监控与日志
命令 | 说明 | 示例 |
---|---|---|
docker ps | 查看容器列表 | docker ps -a --format “table {{.ID}}\t{{.Names}}” |
docker logs | 查看容器日志 | docker logs -f --tail 100 nginx |
docker stats | 实时资源监控 | docker stats --no-stream |
docker top | 查看容器进程 | docker top nginx |
docker inspect | 查看容器详情 | docker inspect nginx |
场景:诊断容器异常
docker inspect nginx | grep -i status -A 10 # 查看健康状态
docker logs --since 10m nginx | grep -i error # 搜索最近10分钟的错误日志
四、网络管理
命令 | 说明 | 示例 |
---|---|---|
docker network ls | 列出网络 | docker network ls --filter driver=bridge |
docker network create | 创建自定义网络 | docker network create --subnet 172.20.0.0/16 mynet |
docker network connect/disconnect | 连接/断开容器网络 | docker network connect mynet nginx |
docker network inspect | 查看网络详情 | docker network inspect mynet |
场景:容器间通信
docker run -d --net mynet --name app1 myapp
docker run -d --net mynet --name app2 myapp
docker exec app1 ping app2 # 直接通过容器名通信
五、数据卷与挂载
命令 | 说明 | 示例 |
---|---|---|
docker volume create | 创建数据卷 | docker volume create db_data |
docker volume ls | 列出数据卷 | docker volume ls -q |
docker run -v | 挂载数据卷 | docker run -v /data:/app/data myapp |
docker cp | 容器与主机间拷贝文件 | docker cp nginx:/etc/nginx/nginx.conf ./ |
场景:持久化数据库
docker run -d -v mysql_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0
六、Docker Compose 常用命令
命令 | 说明 | 示例 |
---|---|---|
docker-compose up | 启动服务栈 | docker-compose up -d(后台运行) |
docker-compose down | 停止并删除服务栈 | docker-compose down -v(同时删除数据卷) |
docker-compose logs | 查看服务日志 | docker-compose logs -f app |
docker-compose ps | 查看服务状态 | docker-compose ps --services |
docker-compose exec | 进入服务容器 | docker-compose exec db mysql -uroot -p |
场景:开发环境重建
docker-compose down && docker-compose up --build -d
七、系统维护命令
命令 | 说明 | 示例 |
---|---|---|
docker system df | 查看磁盘使用 | docker system df -v |
docker system prune | 清理无用资源 | docker system prune --volumes -f |
docker info | 查看Docker系统信息 | docker info |
docker version | 查看版本信息 | docker version --format ‘{{.Server.Version}}’ |
场景:定期清理
docker system prune -a --filter "until=168h" # 清理一周前的所有缓存
八、实用技巧组合
- 批量操作
停止所有容器
docker stop $(docker ps -aq)
删除所有已停止容器
docker container prune
2. 端口转发调试```bash
docker run -d -p 8080:80 -p 5000:5000 myapp
- 环境变量注入
docker run -e “TZ=Asia/Shanghai” -e “DEBUG=true” myapp
4. 资源限制```bash
docker run -d --memory=1g --cpus=2 myapp
命令速查表
# 容器管理
docker run → docker stop → docker rm# 镜像管理
docker build → docker push → docker rmi# 排错三板斧
docker logs → docker exec → docker inspect# 系统维护
docker system df → docker system prune
掌握这些命令后,可以高效管理 Docker 容器化环境。建议配合 --help 参数查看详细选项,如 docker run --help。