以下是Docker常用命令的整理,按功能分类,供参考:
---
### **镜像管理**
1. **拉取镜像**
```bash
docker pull <镜像名:标签> # 例如:docker pull nginx:latest
```
2. **构建镜像**
```bash
docker build -t <镜像名:标签>
```
3. **列出本地镜像**
```bash
docker images
```
4. **删除镜像**
```bash
docker rmi <镜像ID或名称> # 强制删除:docker rmi -f <镜像ID>
```
5. **清理无用镜像**
```bash
docker image prune # 删除所有悬空镜像(未被任何容器引用的中间层镜像)
```
---
### **容器管理**
1. **启动新容器**
```bash
docker run [选项] <镜像名>
# 常用选项:
# -d: 后台运行
# --name: 指定容器名称
# -p <宿主机端口>:<容器端口>: 端口映射(例如:-p 80:80)
# -v <宿主机目录>:<容器目录>: 挂载数据卷
# -e <环境变量>: 设置环境变量(例如:-e MYSQL_ROOT_PASSWORD=123)
# -it: 交互式终端(通常与/bin/bash配合)
# --network: 指定网络
# 示例:docker run -d --name mynginx -p 80:80 nginx
```
2. **启动/停止/重启容器**
```bash
docker start <容器ID或名称>
docker stop <容器ID或名称>
docker restart <容器ID或名称>
```
3. **列出容器**
```bash
docker ps # 查看运行中的容器
docker ps -a # 查看所有容器(包括已停止的)
```
4. **进入容器**
```bash
docker exec -it <容器ID或名称> <命令> # 例如:docker exec -it mynginx /bin/bash
```
5. **查看容器日志**
```bash
docker logs <容器ID或名称> # 实时跟踪日志:docker logs -f <容器ID>
```
6. **删除容器**
```bash
docker rm <容器ID或名称> # 删除已停止的容器
docker rm -f <容器ID或名称> # 强制删除运行中的容器
```
7. **查看容器详情**
```bash
docker inspect <容器ID或名称>
```
8. **复制文件**
```bash
docker cp <宿主机路径> <容器ID:容器内路径> # 宿主机到容器
docker cp <容器ID:容器内路径> <宿主机路径> # 容器到宿主机
```
---
### **网络管理**
1. **列出网络**
```bash
docker network ls
```
2. **创建网络**
```bash
docker network create <网络名>
```
3. **将容器连接到网络**
```bash
docker network connect <网络名> <容器ID或名称>
```
---
### **数据卷管理**
1. **创建数据卷**
```bash
docker volume create <卷名>
```
2. **列出数据卷**
```bash
docker volume ls
```
3. **删除数据卷**
```bash
docker volume rm <卷名>
```
4. **清理无用数据卷**
```bash
docker volume prune
```
---
### **系统与资源**
1. **查看Docker信息**
```bash
docker info
```
2. **查看Docker版本**
```bash
docker version
```
3. **查看资源使用情况**
```bash
docker stats # 实时监控容器资源占用
```
4. **清理系统资源**
```bash
docker system prune # 删除所有停止的容器、无用镜像、网络和构建缓存
```
---
### **其他实用命令**
1. **批量删除所有停止的容器**
```bash
docker container prune
```
2. **批量删除所有未使用的镜像**
```bash
docker image prune -a
```
3. **导出/导入镜像**
```bash
docker save -o <文件名.tar> <镜像名> # 导出镜像
docker load -i <文件名.tar> # 导入镜像
```
---
### **常用示例**
1. **运行Nginx并映射端口**
```bash
docker run -d --name myweb -p 8080:80 nginx
```
2. **进入MySQL容器并执行命令**
```bash
docker exec -it mysql-container mysql -u root -p
```
3. **挂载宿主机目录到容器**
```bash
docker run -v /宿主机/data:/容器/data -d myapp
```
---
掌握这些命令后,基本可以覆盖日常开发、测试和部署中90%的Docker操作场景。建议结合实践加深记忆!