Docker常用命令的整理

以下是Docker常用命令的整理,按功能分类,供参考:

---

### **镜像管理**
1. **拉取镜像**  
   ```bash
   docker pull <镜像名:标签>  # 例如:docker pull nginx:latest
   ```

2. **构建镜像**  
   ```bash
   docker build -t <镜像名:标签>  # 例如:docker build -t myapp:v1 .
   ```

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操作场景。建议结合实践加深记忆!

你可能感兴趣的:(docker,容器,运维)