Docker 核心命令实战手册:从零到云端分发

Docker 核心命令实战手册:从零到云端分发

_

Docker 是现代开发的“装机神器”。本文记录一下镜像构建、容器运行、数据持久化及云端部署的全流程。

一、 📦 镜像管理 (Image Management)

镜像(Image)是容器的只读模板,它是容器运行的基础。

  • 拉取镜像

docker pull nginx:latest  # 📥 从 Docker Hub 拉取最新版镜像
  • 查看本地镜像

docker images  # 📋 列出本地所有已下载的镜像
  • 打包与加载 (离线迁移)

docker save -o mynginx.tar nginx  # 💾 将镜像导出为 tar 文件
docker load -i mynginx.tar        # 📤 从 tar 文件恢复镜像
  • 删除镜像

docker rmi nginx:latest  # 🗑️ 删除指定的本地镜像

二、 📂 数据卷管理 (Volume Management)

数据卷是 Docker 管理数据的正规途径,数据存储在宿主机的 /var/lib/docker/volumes/ 目录下,即使删除容器,数据依然存在。

  • 创建数据卷

docker volume create ngconf  # 🏗️ 显式创建一个命名卷
  • 查看所有数据卷

docker volume ls  # 📋 列出所有已创建的数据卷
  • 查看卷的详细信息

docker volume inspect ngconf  # 🔍 查看卷的存储路径 (Mountpoint)
  • 删除数据卷

docker volume rm ngconf  # 🗑️ 删除不再使用的数据卷

三、 🚀 容器运行与数据挂载 (Container & Volume)

容器是镜像的运行实例。为了保证容器重启后数据不丢失,我们必须使用“挂载”技术。

  • 后台运行并持久化数据

docker run -d --name app01 \
  -v /app/nghtml:/usr/share/nginx/html \
  -v ngconf:/etc/nginx/conf.d \
  -p 80:80 nginx
  • 参数详解

    • -d: 后台运行,不卡终端。

    • --name: 命名,避免使用难记的 ID。

    • -v: 挂载。/app/nghtml 为绑定挂载,ngconf 为自动管理的命名卷。

    • -p: 映射宿主机端口到容器端口。

四、 🛠️ 容器状态与生命周期

掌握这些命令,你就是容器环境的主宰。

  • 查看容器状态

docker ps -a  # 📋 查看运行中和已停止的全部容器
  • 进入容器内部

docker exec -it app01 /bin/bash  # 💻 获取容器的交互式 Shell
  • 停止与删除容器

docker stop app01  # 🛑 优雅地停止容器
docker rm app01    # 🧹 删除已停止的容器

五、 🏗️ 环境固化与云端分发 (Commit & Push)

当你修改好环境配置,想把这份“成果”保存并分享时,请使用以下命令。

  • 提交修改为新镜像

docker commit -m "自定义配置版本" app01 mynginx:v1.0
# 💾 将容器的修改快照固化为新镜像
  • 打标签 (准备推送)

docker tag mynginx:v1.0 hxsy129/mynginx:v1.0
# 🏷️ 将镜像重命名为符合仓库规范的格式 (用户名/镜像名:标签)
  • 推送至 Docker Hub

docker login                       # 🔑 登录到你的 Docker Hub
docker push hxsy129/mynginx:v1.0  # 🚀 将镜像推送到云端仓库

💡 记录者的避坑指南 (Pro Tips)

  1. 命名逻辑rm 是删除容器 (Remove),rmi 是删除镜像 (Remove Image)。带 i 的就是针对 Image 的,记住了这一点就不会乱删了!

  2. 卷的作用:尽量使用命名卷(如 ngconf),Docker 会帮你把数据存放在 /var/lib/docker/volumes/,这比绑定本地路径更安全且不易出错。

  3. 网络与代理:在执行 pushlogin 时,如果遇到 connection refused,请检查宿主机的代理配置,确保 Docker 的 Daemon 代理已正确开启。

  4. 拒绝乱码:启动容器时永远使用 --name 指定名称,这能让你的 Docker 管理变得极其简洁。

避坑指南:为什么配置了国内镜像源,Docker Search 依然超时?(附详细分步解决方案) 2026-06-09
使用 Bitnami 镜像快速部署 Redis 主从集群 2026-06-10

评论区