当前位置: 首页 > news >正文

7、Docker 常用命令大全

🐳 Docker 常用命令大全 + 实战演练(99%场景覆盖版)

🏷️ 标签:Docker、容器化、DevOps、命令速查、Linux 运维
👥 适合读者:后端工程师、运维 DevOps、新手学习者


✨ 前言

💬 学会使用 Docker,不仅能快速构建和部署微服务系统,还能提升环境一致性和部署效率。但很多新手装完 Docker 却不知道该怎么用。

📚 本文总结了 Docker 最常用的命令场景,包括镜像管理、容器操作、网络与数据卷配置、系统清理、Docker Compose 等,覆盖开发与运维 99% 的实际使用需求,适合随时查阅、收藏!


🗂️ 命令速查总目录

  • 🛠️ 1. 基础信息命令
  • 📦 2. 镜像管理命令
  • 🚀 3. 容器管理命令
  • 📁 4. 数据卷(Volumes)管理
  • 🌐 5. 网络操作命令
  • 🏗️ 6. 构建与导入导出镜像
  • 🧹 7. 系统清理维护
  • 🧩 8. Docker Compose 快速入门
  • 🔧 9. 实战演练:部署 Nginx + 挂载静态页面

🛠️ 1. 基础信息命令

docker version            # 查看 Docker 版本
docker info               # 显示 Docker 系统信息
docker --help             # 查看所有子命令说明

📦 2. 镜像管理命令

docker images                             # 查看所有本地镜像
docker pull 镜像名[:标签]                   # 从远程仓库拉取镜像
docker rmi 镜像ID/镜像名                    # 删除镜像
docker tag 源镜像 目标镜像[:标签]           # 给镜像打标签(重命名)
docker inspect 镜像ID                      # 查看镜像详细信息
docker history 镜像ID                      # 查看镜像构建历史
docker save 镜像名 > image.tar             # 导出镜像为 tar 包
docker load < image.tar                   # 从 tar 文件导入镜像
docker search 关键字                       # 在 Docker Hub 搜索镜像

🚀 3. 容器管理命令

docker ps                                  # 查看正在运行的容器
docker ps -a                               # 查看所有容器(含已停止)
docker run -it 镜像名 /bin/bash            # 交互式运行容器
docker run -d 镜像名                       # 后台运行容器
docker run --name 容器名 镜像名            # 指定名称运行容器
docker run -p 宿主端口:容器端口 镜像名      # 端口映射运行容器
docker run -v 本地路径:容器路径 镜像名      # 挂载目录运行容器
docker start 容器ID/名                     # 启动容器
docker stop 容器ID/名                      # 停止容器
docker restart 容器ID/名                   # 重启容器
docker rm 容器ID/名                        # 删除容器
docker logs [-f] 容器ID/名                 # 查看容器日志(-f 实时)
docker exec -it 容器ID/名 bash             # 进入容器终端(推荐)
docker attach 容器ID/名                    # 连接容器终端(慎用)
docker cp 容器ID:/路径 本地路径            # 从容器复制文件到宿主机
docker cp 本地路径 容器ID:/路径            # 从宿主机复制文件到容器
docker inspect 容器ID/名                   # 查看容器详细配置

📁 4. 数据卷(Volumes)管理

docker volume create 卷名                 # 创建数据卷
docker volume ls                          # 列出所有卷
docker volume inspect 卷名                # 查看卷详情
docker volume rm 卷名                     # 删除卷# 示例:挂载数据卷运行容器
docker run -d -v 卷名:/usr/share/nginx/html nginx

🌐 5. 网络操作命令

docker network ls                         # 查看所有网络
docker network create my-net              # 创建自定义网络
docker network inspect 网络名             # 查看网络详情
docker network connect 网络 容器名        # 将容器加入网络
docker network disconnect 网络 容器名     # 将容器移出网络
docker network rm 网络名                  # 删除网络

🏗️ 6. 构建与导入导出镜像

docker build -t my-image:1.0 .             # 构建镜像(当前目录含 Dockerfile)
docker save my-image > my-image.tar        # 导出镜像为 tar
docker load < my-image.tar                 # 导入镜像
docker export 容器ID > container.tar       # 导出容器文件系统
docker import container.tar my-image       # 导入为镜像

🧹 7. 系统清理维护

docker system prune                        # 清理所有未使用的镜像/容器/网络(需确认)
docker image prune                         # 清理悬挂镜像
docker container prune                     # 清理已退出容器
docker volume prune                        # 清理未使用卷
docker builder prune                       # 清理构建缓存

🧩 8. Docker Compose 快速入门

docker compose up -d                      # 启动 Compose 项目(后台)
docker compose down                       # 停止并删除所有服务
docker compose ps                         # 查看服务状态
docker compose logs -f                    # 查看服务日志
docker compose restart                    # 重启所有服务

📄 示例 docker-compose.yml

version: "3"
services:nginx:image: nginxports:- "80:80"volumes:- ./html:/usr/share/nginx/html

🔧 9. 实战演练:部署 Nginx + 静态页面

# 运行 nginx 容器并挂载本地 html
docker run -d --name my-nginx \-p 8080:80 \-v ~/nginx/html:/usr/share/nginx/html \nginx# 创建本地 html 目录并写入 index.html
mkdir -p ~/nginx/html && echo "<h1>Hello Docker</h1>" > ~/nginx/html/index.html

🌐 访问 http://<宿主机IP>:8080 即可看到页面效果。


🧠 总结

🎯 掌握这些 Docker 命令,意味着你具备了从镜像获取 → 容器部署 → 数据挂载 → 网络联通 → 清理优化 的完整生命周期管理能力。

💡 建议收藏本页或打印保存,方便日常开发查阅。


✍️ 作者专栏:《部署不求人》
❤️ 如果文章对你有帮助,欢迎点赞 👍、收藏 ⭐、评论 💬!

http://www.dtcms.com/a/302475.html

相关文章:

  • Python + Requests库爬取动态Ajax分页数据
  • Qt:盒子模型的理解
  • WebSocket双向通信——引入进行功能优化
  • opencv学习(轮廓检测)
  • ACL 访问控制列表全解析:从规则语法到实战配置
  • 旧物回收小程序:科技赋能,让旧物回收焕发生机
  • Avalonia的自定义边框窗口
  • React中为甚么强调props的不可变性
  • TMS320F2812PGFA TI:150MHz工业级DSP控制芯片,电机控制专用
  • 腾讯AI IDE
  • 天学网面试 —— 中级前端开发岗位
  • 动/静态库的原理及制作
  • 测试用例设计常用方法
  • MR-link-2:多效性顺式孟德尔随机化分析!
  • Windows 系统分辨率切换** 与 **Qt4 无边框窗口管理机制** 的交互
  • 2025年7月21–28日AI开发周报:新模型、新战略与开源亮点
  • 全新AI工具小程序源码 全开源
  • 北京-4年功能测试2年空窗-报培训班学测开-第六十二天-模拟未通过,继续准备自我介绍项目介绍面试题中
  • java中一些数据结构的转换
  • C++模板元编程从入门到精通
  • 从“PPT动画”到“丝滑如德芙”——uni-app x 动画性能的“终极奥义”
  • 能源智跃:大模型破壁数据孤岛,铸就智能转型新范式
  • ofd文件转pdf
  • 打通视频到AI的第一公里:轻量RTSP服务如何重塑边缘感知入口?
  • InsightFace(RetinaFace + ArcFace)人脸识别项目(预训练模型,鲁棒性很好)
  • 端到端的核心区别点
  • Ubuntu24安装MariaDB/MySQL后不知道root密码如何解决
  • 如何实现任务附件管理功能:ONLYOFFICE协作空间文件选择器集成指南
  • (LeetCode 面试经典 150 题 ) 155. 最小栈 (栈)
  • 【Oracle】数据泵