Windows 上使用 Docker Desktop 教程

相比于在 Linux 上直接安装软件,使用 Docker 有明显优势:它可以将应用及其依赖打包在独立的容器中,环境一致性强,避免了"在我电脑能跑,在你电脑不能跑"的问题,同时方便迁移和快速部署。

对于个人开发者而言,在 Windows 上安装 WSL2 和 Docker Desktop 的步骤,就可以轻松搭建完整的开发环境,实现跨平台开发与测试,大大提高效率和灵活性。

一、在 Windows 11 家庭版上安装 Docker

1. 启用 WSL 2

Windows 11 家庭版不支持 Hyper-V,因此需要通过 WSL 2 来运行 Docker。

  • 启用 WSL 功能

    打开 PowerShell(管理员权限),输入以下命令并回车:

    powershell 复制代码
    wsl --install

    该命令会启用 WSL 并安装默认的 Linux 发行版(通常是 Ubuntu)。

  • 设置 WSL 2 为默认版本

    powershell 复制代码
    wsl --set-default-version 2

2. 安装 Docker Desktop

  • 下载 Docker Desktop:访问 Docker 官网下载适用于 Windows 的安装程序。
  • 安装 Docker Desktop:运行下载的安装程序,按照提示完成安装。
  • 启动 Docker Desktop:首次启动时,Docker 会检测 WSL 2 并提示启用相关功能,确认即可。

3. 配置 Docker

  • 登录 Docker 账户(可选):启动 Docker Desktop 后,可登录 Docker 账户以访问更多功能。

4. 验证安装

  • 查看 Docker 版本:

    powershell 复制代码
    docker --version
  • 运行测试容器:

    powershell 复制代码
    docker run hello-world

5. 使用 Docker

  • 可通过 Docker Desktop 或命令行管理容器和镜像。
  • 若需在 WSL 2 中使用 Docker,确保 Docker Desktop 已启用 WSL 2 后端。

注意事项

  • 硬件要求:确保系统支持虚拟化并已启用。
  • WSL 2 更新:保持 WSL 2 和 Docker Desktop 为最新版本。

二、Docker 使用流程核心概念

项目 类型 作用 输入 输出
Dockerfile 配置文件 描述如何构建镜像 无(静态文件) ------
docker build 命令 构建镜像 Dockerfile + 上下文文件 镜像(Image)
docker run 命令 运行容器 已有镜像 容器(Container)

三、docker run 的 3 类核心参数

Docker 将应用及运行环境封装为隔离运行的进程,实现"一次构建,到处运行"。

隔离内容

  • 进程(PID Namespace)
  • 网络(Network Namespace)
  • 文件系统(Mount Namespace)

Docker 容器本质

  • 网络是隔离的,端口要用 -p 才能被外部访问
  • 容器之间要通信,需要加入到相同网络
  • 容器文件系统是临时的,数据需要挂载到宿主机才能持久化
参数 解决的问题
-p 外部如何访问容器
--network 容器之间如何通信
-v 数据和配置如何保存

四、示例:docker 运行 Java JAR 包

目录结构

复制代码
java-docker-demo/
├── Dockerfile
└── app.jar

说明:

  • app.jar:已经打包好的 Java 程序
  • Dockerfile:用于构建 Java 镜像
  • 当前目录就是构建上下文(build context)

Dockerfile

dockerfile 复制代码
# 使用官方 OpenJDK 17 运行环境作为基础镜像
FROM openjdk:17-jdk-slim

# 设置容器内工作目录为 /app
WORKDIR /app

# 将宿主机当前目录下的 app.jar 拷贝到容器的 /app/app.jar
COPY app.jar app.jar

# 设置 JVM 启动参数(可在 docker run 时被覆盖)
ENV JAVA_OPTS="-Xms256m -Xmx512m"

# 声明容器内 Java 程序监听的端口(仅声明,不映射)
EXPOSE 8080

# 容器启动时执行的命令
CMD ["sh", "-c", "java $JAVA_OPTS -jar app.jar"]

构建镜像

bash 复制代码
docker build \
  -t java-app:1.0 \        # -t:给镜像命名,格式为 镜像名:版本号
  .                        # . :构建上下文目录(包含 Dockerfile 和 app.jar)

运行容器

bash 复制代码
docker run \
  -d \                                     # -d:后台运行容器
  --name java-app \                        # --name:指定容器名称
  --network app-net \                      # --network:加入名为 app-net 的 Docker 网络,用于容器间通信
  -p 8080:8080 \                           # -p:端口映射(宿主机端口:容器端口),供宿主机/外部访问
  -v /opt/java-app/config:/app/config \    # -v:目录挂载(宿主机目录:容器目录)
  -e JAVA_OPTS="-Xms512m -Xmx1g" \         # -e:设置环境变量,覆盖 Dockerfile 中的 ENV
  java-app:1.0                             # 使用的镜像名和版本

五、示例:docker 运行 Jenkins

拉取镜像

bash 复制代码
docker pull jenkins/jenkins

运行 Jenkins

bash 复制代码
docker run -d \
  --name jenkins \
  --restart=always \
  --network=demo \
  -p 8080:8080 \
  -p 50000:50000 \
  -v ~/docker/jenkins/jenkins_home:/var/jenkins_home \
  jenkins/jenkins:lts
相关推荐
感谢地心引力2 小时前
安卓、苹果手机无线投屏到Windows
android·windows·ios·智能手机·安卓·苹果·投屏
lightningyang3 小时前
DVWA 在 openEuler 系统的安装部署
docker·渗透测试·openeuler·dvwa·天枢一体化虚拟仿真靶场平台
风清扬_jd3 小时前
libtorrent-rasterbar-2.0.11编译说明
c++·windows·p2p
虚心低调的tom6 小时前
Moltbot 助手在 Windows 10 上安装并连接飞书教程
windows·飞书·moltbot
Ha_To6 小时前
2026.1.28 docker安装
运维·docker·容器
北极熊~~6 小时前
emqx持久化 Docker 容器中生成的数据并打包新镜像,迁移至新机器运行
运维·docker·容器
tomiatomia7 小时前
MinIO docker 部署使用的几个坑
运维·docker·容器
x***r1517 小时前
Putty远程管理软件安装步骤详解(附首次连接教程)
windows
tod1138 小时前
Makefile进阶(上)
linux·运维·服务器·windows·makefile·进程
杨浦老苏9 小时前
Docker方式安装你的私人AI电脑助手Moltbot
人工智能·docker·ai·群晖