docker 的常用命令
一、基础信息命令(查看 / 帮助)
这类命令用于了解 Docker 环境和获取帮助,是入门第一步:
# 查看Docker版本(简洁版)
docker --version
# 查看Docker详细版本信息(包含客户端/服务端)
docker version
# 查看Docker系统信息(镜像、容器、存储等)
docker info
# 获取命令帮助(通用)
docker --help
# 获取指定命令的帮助(比如查看run命令的参数)
docker run --help
二、镜像操作命令(核心)
镜像是容器的"模板",以下是镜像的核心操作:
| 命令 | 作用 | 示例 |
|---|---|---|
docker search [镜像名] | 搜索 Docker Hub 上的镜像 | docker search nginx |
docker pull [镜像名]:[标签] | 拉取镜像(标签默认 latest) | docker pull nginx:1.25 |
docker images / docker image ls | 查看本地所有镜像 | docker images |
docker rmi [镜像ID/镜像名] | 删除本地镜像(需先删依赖容器) | docker rmi nginx:1.25 |
docker rmi -f [镜像ID] | 强制删除镜像(忽略容器依赖) | docker rmi -f 828a0e8df33a |
docker build -t [镜像名]:[标签] [Dockerfile路径] | 从 Dockerfile 构建镜像 | docker build -t myapp:v1 .(.表示当前目录) |
docker save -o [文件名.tar] [镜像名] | 将镜像保存为 tar 包(备份) | docker save -o nginx.tar nginx:1.25 |
docker load -i [文件名.tar] | 从 tar 包加载镜像(恢复) | docker load -i nginx.tar |
三、容器操作命令(最常用)
容器是镜像的运行实例,这部分命令是日常使用频率最高的:
1. 运行容器(创建 + 启动)
# 核心格式:docker run [参数] 镜像名 [容器内命令]
# 示例1:后台运行nginx,映射主机8080端口到容器80,命名为mynginx
docker run -d --name mynginx -p 8080:80 nginx
# 示例2:交互式运行ubuntu(进入终端),退出后自动删除容器
docker run -it --rm ubuntu /bin/bash
关键参数说明:
-d:后台运行容器(守护进程模式)-it:交互式终端(可进入容器操作)--name:自定义容器名(默认随机生成)-p:端口映射(主机端口:容器端口)-v:数据卷映射(主机路径 / 卷名:容器路径)--rm:容器停止后自动删除(适合临时测试)
2. 查看 / 管理容器状态
# 查看运行中的容器
docker ps
# 查看所有容器(包括已停止)
docker ps -a
# 只显示容器ID(批量操作时常用)
docker ps -q
# 启动已停止的容器
docker start mynginx
# 停止运行中的容器
docker stop mynginx
# 重启容器
docker restart mynginx
# 强制停止容器(类似kill进程)
docker kill mynginx
3. 进入 / 查看容器详情
# 进入运行中的容器(推荐,不影响容器主进程)
docker exec -it mynginx /bin/bash
# 查看容器日志(-f实时跟踪,--tail 100查看最后100行)
docker logs -f --tail 100 mynginx
# 查看容器详细信息(IP、挂载、网络等)
docker inspect mynginx
4. 删除容器
# 删除已停止的容器
docker rm mynginx
# 强制删除运行中的容器
docker rm -f mynginx
# 批量删除所有已停止的容器(慎用)
docker rm $(docker ps -aq)
四、数据卷操作(持久化数据)
数据卷用于容器数据持久化(容器删除后数据不丢失):
# 创建自定义数据卷
docker volume create nginx-data
# 查看所有数据卷
docker volume ls
# 查看数据卷详情(包括存储路径)
docker volume inspect nginx-data
# 删除指定数据卷(需先解绑容器)
docker volume rm nginx-data
# 清理所有未使用的数据卷(释放空间)
docker volume prune
五、网络操作(容器互联)
# 创建自定义网络(桥接模式,容器间可通过名称通信)
docker network create my-network
# 查看所有网络
docker network ls
# 将容器连接到自定义网络
docker network connect my-network mynginx
# 断开容器与网络的连接
docker network disconnect my-network mynginx
# 删除自定义网络
docker network rm my-network
六、Docker Compose 命令(多容器编排)
用于管理多容器应用(需先安装 docker-compose):
# 启动所有服务(-d后台运行,--build重新构建镜像)
docker-compose up -d --build
# 停止并删除容器、网络(-v删除数据卷)
docker-compose down -v
# 查看Compose管理的容器
docker-compose ps
# 进入指定服务的容器
docker-compose exec web /bin/bash
# 查看服务日志(-f实时跟踪)
docker-compose logs -f web
七、系统清理命令(释放空间)
# 清理所有未使用的镜像、容器、网络、数据卷(慎用,确认无重要数据)
docker system prune -a
总结
核心高频命令
- 镜像操作(
pull/build/images/rmi)、容器操作(run/ps/exec/stop/rm)是日常使用的核心,需重点掌握。
docker run 的关键参数
-d(后台)、-p(端口)、--name(命名)、-v(数据卷)是最常用的,决定容器的运行方式。
优化建议
- 数据持久化优先用
docker volume(而非主机路径映射) - 清理无用资源用
prune系列命令,但需确认数据无保留价值