全部文章

Docker Desktop 安装与使用

Windows 上安装 Docker Desktop,配置 WSL 2 后端,使用 Docker Compose,并了解 Docker MCP Toolkit

目录 19 节

Docker Desktop 安装与使用

Docker 是容器化平台,用于隔离运行环境和统一服务启动方式。

这页只记录 Windows + WSL 环境里的 Docker Desktop 安装、配置和常用操作。

什么时候该用 Docker Desktop

下面几类场景,Docker 往往能明显减少环境问题:

  • 项目依赖 PostgreSQL、Redis、Nginx 等服务
  • 团队多人协作,需要统一版本与启动方式
  • 你需要一键起多服务,或者要频繁切换项目环境
  • 要把本地运行环境尽量靠近线上

但如果只是写一个纯前端 demo 或单文件脚本,直接本地跑通常更轻、更快。

前置条件

确保已启用 WSL 2:

wsl --install

安装

winget install Docker.DockerDesktop

安装后重启电脑,Docker Desktop 会自动启动。

验证:

docker --version
docker compose version

Docker Desktop + WSL 2 推荐配置

Docker 官方在 Windows 上推荐使用 WSL 2 后端,这通常比传统 Hyper-V 工作流更省资源,也更适合前端与后端本地开发。

建议按这个顺序检查:

  1. 先确认 wsl --version 输出正常,并已安装至少一个 Linux 发行版
  2. 在 Docker Desktop 的设置中启用 Use the WSL 2 based engine
  3. Resources → WSL Integration 里打开你常用发行版的集成开关
  4. 进入 WSL 终端,直接运行 docker versiondocker compose version 验证

建议把活跃项目放在 WSL 的 Linux 文件系统中,例如 ~/projects/app,这样文件监听、依赖安装、容器挂载的性能更稳定。

如果你主要在 WSL 中开发,可以把 Docker 当成“Windows 安装、Linux 使用”的模式:Docker Desktop 负责后台引擎,终端、编辑器和代码都放在 WSL 里。

推荐上手路线

如果你是第一次系统使用 Docker,建议按下面顺序来:

  1. 先确认引擎能启动,docker version 输出正常
  2. docker run hello-world 验证最小工作流
  3. 再学会拉镜像、看日志、进容器、删容器
  4. 然后转向 docker compose 管理多服务
  5. 最后再补 Dockerfile、镜像优化、部署与编排

镜像管理

docker pull nginx              # 拉取镜像
docker images                  # 查看本地镜像
docker rmi nginx               # 删除镜像
docker image prune             # 清理悬空镜像
docker system prune -a         # 清理所有未使用资源

容器操作

docker run -d -p 8080:80 --name my-nginx nginx   # 运行容器
docker ps                      # 查看运行中的容器
docker ps -a                   # 查看所有容器
docker stop my-nginx           # 停止容器
docker start my-nginx          # 启动容器
docker rm my-nginx             # 删除容器
docker logs -f my-nginx        # 查看日志(实时)
docker exec -it my-nginx sh    # 进入容器

Docker Compose

# docker-compose.yml 示例
services:
  web:
    image: nginx
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html
    restart: unless-stopped
docker compose up -d           # 启动服务
docker compose down            # 停止并删除
docker compose logs -f         # 查看日志
docker compose ps              # 查看状态
docker compose pull            # 更新镜像

项目目录建议

一个自托管或本地联调项目,目录建议尽量分清代码、配置、持久化数据:

project/
  compose.yml
  .env
  app/
  config/
  data/
  backups/

经验上:

  • data/ 放数据库、上传目录等持久化内容
  • config/ 放 Nginx、应用配置等可版本化文件
  • .env 放端口、密码、域名等环境变量,但不要提交真实密钥
  • 升级服务前,先备份 data/ 和关键配置

进阶:Dockerfile

FROM node:22-alpine
WORKDIR /app
COPY package.json pnpm-lock.yaml ./
RUN corepack enable && pnpm install --frozen-lockfile
COPY . .
RUN pnpm build
EXPOSE 3000
CMD ["node", ".output/server/index.mjs"]
docker build -t my-app .
docker run -d -p 3000:3000 my-app

配置镜像加速

Docker Desktop 设置 → Docker Engine:

{
  "registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}

Docker MCP Toolkit

较新的 Docker Desktop 提供了 Docker MCP Toolkit,可以把一些 MCP Server 与 Gateway 通过 Docker 方式统一管理。它很适合下面几类场景:

  • 不想在本机直接安装一堆 Node.js / Python 依赖
  • 团队希望共享同一套 MCP 工具环境
  • 想把工具能力隔离在容器里,降低宿主机污染

启用相关功能后,可以先用下面的命令查看当前环境支持的 MCP 子命令:

docker mcp --help
docker mcp server ls
docker mcp tools list
docker mcp gateway run

如果你的 AI 客户端支持通过外部命令启动 MCP Server,也可以直接让它调用容器:

{
  "my-mcp-server": {
    "command": "docker",
    "args": ["run", "--rm", "-i", "ghcr.io/acme/my-mcp-server:latest"]
  }
}

这样做的好处是:客户端不需要关心宿主机上是否安装了 Python、Node.js、SQLite 或其他依赖,容器镜像本身就封装了运行环境。

更多 MCP 基础概念、客户端配置位置和常见服务器示例,可继续看 MCP 模型上下文协议

常见问题

Docker Desktop 启动后命令不可用

  • 先确认系统托盘里的 Docker Desktop 已完全启动
  • 再重新开一个终端执行 docker version
  • 如果只是在 WSL 内不可用,检查对应发行版的 WSL Integration 是否已开启

容器能起,但文件监听很慢

这通常是代码放在 Windows 文件系统里,再从 WSL 或容器挂载导致的。更稳妥的做法是把活跃项目放进 WSL 的 Linux 文件系统中。

端口冲突

如果 300054326379 已被占用,先用:

docker ps
ss -tlnp

确认是宿主机服务冲突还是已有容器冲突,再决定换端口还是停掉旧服务。

清理空间时误删数据

docker system prune -a 很好用,但它会清掉未使用资源。执行前先区分:

  • 镜像能不能重新拉
  • 卷里是不是有数据库或上传数据
  • 当前项目是不是还依赖某些 stopped 容器保留状态

延伸阅读

参考链接

阅读建议
  • - 先读标题和摘要,再结合目录决定从哪个章节开始精读。
  • - 看到具体命令、配置或步骤时,尽量在自己的环境里同步验证。
  • - 如果你只是快速查资料,可先看目录和相关文档,再决定是否深入全文。
适合谁看
  • - 希望把零散经验整理成长期可复用工作流的人
  • - 想先建立认知,再决定是否深入实践的人
  • - 希望阅读时顺手建立自己的操作清单或收藏体系的人
执行前检查
  • - 先浏览标题、摘要和目录,带着问题阅读会更高效
  • - 顺手记录真正对你有用的命令、链接和注意事项,避免重复搜索
  • - 如果页面里提到相关文档,尽量一起打开对照,效果通常更完整
同类内容
← 上一篇Windows 开发环境搭建