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

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.xdnf.cn/news/16635.html

相关文章:

  • HLS视频切片音频中断问题分析与解决方案
  • 力扣17:电话号码的字母组合
  • vue-grid-layout元素交换位置及大小
  • 【uniapp】---- 使用 uniapp 实现视频和图片上传且都可以预览展示
  • Python系统交互库全解析
  • Cloudflare CDN 中设置地域限制并返回特定界面
  • 基于Vue3.0+Express的前后端分离的任务清单管理系统
  • 虚拟地址空间:从概念到内存管理的底层逻辑
  • “本地计算机上的 mysql 服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止”解决方式
  • R语言与作物模型(DSSAT模型)技术应用
  • 从0开始学习R语言--Day60--EM插补法
  • 深入解析IPMI FRU规范:分区结构与字段标识详解
  • CMakelists.txt 实现多级目录编译
  • Kafka 3.9.1的KRaft模式部署
  • 【Spring Boot 快速入门】二、请求与响应
  • Java设计模式之<建造者模式>
  • 稳定币催化下,Web3 支付赛道将迎来哪些爆发?
  • 二十一、动植物类(自然生态)
  • CodeBuddy的安装教程
  • 神经网络的基本骨架-nn.Module的使用和卷积操作
  • 燃气管网运行工考试练习题
  • 如何提升 TCP 传输数据的性能?详解
  • 【Java Web实战】从零到一打造企业级网上购书网站系统 | 完整开发实录(一)
  • Windows 系统分辨率切换** 与 **Qt4 无边框窗口管理机制** 的交互
  • haproxy实列
  • 【深度学习优化算法】10:Adam算法
  • DDD领域驱动中瘦模型与富态模型的核心区别
  • SpringCloude快速入门
  • 2025最新Mybatis-plus教程(三)
  • java的break能加标签,return可以加标签吗