Docker Desktop 使用操作指南

1. 为什么要用 Docker Desktop?

可以把 Docker 想成**"应用的集装箱"**:

  • 在现实世界,集装箱可以装任何货物(食品、电子产品、服装...),无论船、火车还是卡车运输,都能保证里面的东西不会变。

  • 在软件世界,Docker 容器可以装任何软件(网站、数据库、Python 程序...),无论运行在 Windows、Mac 还是 Linux,效果都一样,不会因为环境不同而"跑不起来"。

对开发者的好处:

  • 不脏主机:不用在自己的电脑装一堆复杂的软件环境。

  • 快速部署:打包好直接发给别人用,不用担心"环境不一致"。

  • 跨平台:相同的容器,可以从你电脑直接搬到服务器或云端运行。


2. Docker Desktop 的原理(比喻篇)

现实中的物流体系:
  1. 集装箱码头 → 存放集装箱的地方(相当于 Docker 镜像仓库)

  2. 集装箱起重机 → 把集装箱装上船/卸下船(相当于 Docker 引擎)

  3. 集装箱运输车 → 运输集装箱到目的地(相当于容器运行环境)

在 Docker Desktop 中:
  1. 镜像仓库(Registry)

    • 比如 Docker Hub,存放各种"装好软件的集装箱"。
  2. Docker 引擎(Docker Engine)

    • 像起重机一样,把镜像(集装箱)搬到运行环境里。
  3. 容器(Container)

    • 就是运行起来的应用实例(集装箱在路上运输或已送到工厂使用)。
  4. WSL2 / 虚拟机

    • 在 Windows 上模拟一个"港口",因为大多数集装箱(容器)是 Linux 格式的。

3. Docker Desktop 的主要构成

组件 作用
Docker Engine 核心大脑,负责下载、创建、运行和管理容器。
Docker CLI 命令行接口,输入 docker xxx 就是通过 CLI 给引擎下指令。
Docker Compose 批量管理多个容器服务,用一个 docker-compose.yml 描述全部服务运行规则。
GUI 面板 图形界面版的控制台,可以直接点击管理容器、镜像、网络和存储卷。
Registry 支持 可以登录 Docker Hub 或私有镜像仓库,方便共享镜像。

4. Docker Desktop 操作步骤(带比喻+图解思路)

第一步:安装并启动 Docker Desktop
  1. 从官网下载安装(像给自己装一个"集装箱港口")。

  2. 打开后,右下角出现小鲸鱼图标 → 绿色表示港口已经正常运作。

第二步:拉取镜像(相当于"从码头取集装箱")
复制代码
docker pull python:3.11-slim
  • 这个命令会从 Docker Hub 拉取一个装好 Python 3.11 环境的镜像(集装箱)。
第三步:运行容器(相当于"把集装箱运到工厂开始生产")
复制代码
docker run -it --name mypython python:3.11-slim bash
  • -it 表示交互模式。

  • --name mypython 给容器取名字。

  • bash 表示运行后进入容器的命令行。

第四步:批量管理(用 Compose 组织多个集装箱)

创建一个 docker-compose.yml 文件:

复制代码
version: '3' services: web: image: nginx ports: - "8080:80"

运行:

复制代码
docker compose up -d

停止:

复制代码
docker compose down

5. Docker Desktop 的用途

  • 本地快速测试:运行数据库、Web 服务等依赖,不污染本机。

  • 微服务开发:多个服务同时跑,方便调试。

  • 跨环境部署:开发机、测试机、线上机统一镜像。

  • 自动化 CI/CD:配合 GitLab CI、Jenkins 做持续集成部署。


6. 常见问题与解决

问题 原因 解决方案
wsl --update 无法执行 PATH 缺少 System32 添加 C:\Windows\System32 到环境变量
拉取镜像很慢 网络限制 设置国内镜像加速(如阿里云、DaoCloud)
容器网络不通 DNS 问题 在 Docker Desktop 设置中改 DNS 为 8.8.8.8
端口冲突 本地已有服务占用端口 修改 docker-compose.yml 的端口映射

7. 图解思路(建议做成 PDF)

建议画一个这样的结构图,方便你做成 PDF 保存:

复制代码
[Docker Hub 镜像仓库] ↓ 拉取 [Docker Engine 引擎] ← (CLI/GUI) ↓ 创建 [容器 Container] ← 映射 → [本地端口]

再配一张现实"港口 + 集装箱"的照片对比,让小白一眼就懂。