Skip to content

Win11 安装 Docker

  • 本人的操作系统是 Win11 企业版,尽量选择专业版以上版本。
  • 当前的 Win 版本的 Docker 和 VMware 已经不冲突了,底层使用的是 WSL2 。
  • 本文所使用的资源:Docker Desktop Installer.zip

第一章:开启 Hyper-V

1.1 将控制面板图标显示到桌面上

1664503880411-8bb1f19c-b62a-45ed-aae4-4aa0db71e884.png

1664503886490-5de4430e-05ad-4d23-afe9-22236bd9fa04.png

1664503891338-beff51c0-a968-45ed-9b21-cb974f3c21c7.png

1664503895020-245bb74d-e1d1-4b8a-b3a9-44ae498ca626.png

1664503898958-90d0c147-6e65-4c4c-808f-c10b81a85cfb.png

1.2 开启 Hyper-V

1664503906396-8db9bead-1739-4a9b-9480-f9dfbf885fbb.png

1664503909876-c48e6656-b3a7-4f6a-b0a9-992e84ff69f5.png

1664503914701-4115d62c-cb5c-4d72-a2c7-753d2f4dc5c4.png

1664503918838-95c176ce-ae15-455a-9705-acd188068bf0.png

可能会提示重启计算机,那就重启呗~

第二章:初始化环境

  • 使用管理员身份打开 Powershell:

1664503923831-eb1222b6-ff5d-48c4-a06d-6f88e89d85aa.png

  • 执行命令:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

1664503928659-e7e7e727-1a13-4f51-be0e-9b17ecbead1e.png

第三章:安装或更新 WSL2

  • 下载地址
  • 安装:下一步即可。
  • 使用管理员身份打开 Powershell ,执行如下的命令:
wsl --set-default-version 2

1664503938957-8772f998-cbe8-490b-94e9-eac1702c772a.png

如果 wsl 开启不成功,请安装 wsl_update_x64.zip

第四章:安装 Docker

4.1 安装 Docker

1664503945088-03bbc1b7-3360-490e-a575-221779490561.png

  • 安装:

1664503949694-577bcea5-4a40-426c-a0c0-5f1edd597b03.png

1664503953603-4df56824-f40f-47c1-9453-aa79d844206f.png

1664503958272-361d08b4-a550-426e-8840-6cf2528ccda1.png

1664503963356-828fb4c9-0a19-4a05-8f83-4d00529f15d8.png

1664503969624-cd3ed476-df82-41b4-a446-6e5222c21e81.png

1664503973917-99275edb-86f8-4a0c-8e70-deeac006a9aa.png

  • 打开 cmd 窗口,就可以看到熟悉的 Docker 命令了:

1664503978979-4d098a46-1b7a-4e83-b956-4ec5a694c538.png

可能会提示重启计算机,那就重启呗~

4.2 配置阿里云镜像加速

  • 配置阿里云镜像加速:

1665707849844-768bfd6d-18f0-4dcd-a0e0-9c400914b0e8.png

1665707858124-be0e8ed5-7845-488f-bc42-4df101afc84f.png

1665707879159-baf27128-ba78-4caf-b500-0ffb807ed653.png

  • 其实,和在 Linux 上配置 Docker 的如出一辙,内容如下:

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "features": {
    "buildkit": true
  },
  "registry-mirrors": [
    "https://du3ia00u.mirror.aliyuncs.com",
    "https://docker.lixd.xyz"
  ],
}

第五章:IDEA 和 Docker 的整合

5.1 IDEA 和 Docker 的整合

1665707978661-944714db-0333-40c7-9649-6d237d73cd41.png

1665707991797-31e6d095-0d50-4f49-bd15-b12a2b19ca75.png

5.2 测试

  • 开发环境:

    • IDEA 2022 +。
    • JDK 11 。
    • Gradle 7.5 。
  • 步骤:

  • ① 使用 IDEA 创建 SpringBoot 项目:略(构建工具选择 Gradle ,JDK 的版本选择 11)。

1665708061421-7fc01003-e5ed-4f03-a72f-da10773ff9d6.png

  • ② 修改 build.gradle 文件:

plugins {
    id 'org.springframework.boot' version '2.7.4'
    id 'io.spring.dependency-management' version '1.0.14.RELEASE'
    id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
    mavenCentral()
}

jar {
    // 坑,如果不设置为 false ,将会生成 xxx-plain.jar'
    // 如果是多模块,请在微服务模块配置
    enabled = false
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('test') {
    useJUnitPlatform()
}

  • ③ 在项目根目录中新增 Dockerfile 文件,内容如下:

# 以下所有前提 保证 Dockerfile 和项目在同一个文件夹
# 第一阶段:环境构建
FROM gradle:7.5-jdk11-alpine AS builder
WORKDIR /app
COPY . .
RUN gradle build -x test
# 第二阶段,最小运行时环境,只需要 jre;第二阶段并不会有第一阶段哪些没用的层
# jdk springboot-actutor(jdk)openjdk:8u282-slim
FROM amazoncorretto:11.0.16-alpine3.16
LABEL maintainer="xxxx@qq.com"
# 从上一个阶段复制内容
COPY --from=builder /app/build/libs/*.jar /app.jar
# 修改时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone && touch /app.jar
# 环境变量
# docker run -e JAVA_OPTS="-Xmx512m -Xms64m" -e PARAMS="--spring.profiles.active=dev --server.port=8080" xxx
ENV JAVA_OPTS=""
ENV PARAMS=""
# 运行 jar 包
ENTRYPOINT [ "sh", "-c", "java -Djava.security.egd=file:/dev/./urandom $JAVA_OPTS -jar /app.jar $PARAMS" ]

  • 在 IDEA 中配置 Docker 的运行和调试配置:

1665708204913-53a412c1-4a81-470a-bf2e-1535deb03279.png

1665708228040-2d3d2c14-ab85-43e6-b72d-98f42382f43c.png

1665708235780-4391ed10-7c50-4c50-84cd-b8293837e7d8.png

1665708244600-efe20f55-eda1-4dab-838a-595ac3e62a9f.png

  • 如果看到日志有乱码,就需要进行如下的配置:

1665708250364-c702c767-358c-4670-bbf3-ccde77e72457.png

1665708261024-ce232a2f-3788-4b2b-a8af-fda8d2d8d282.png

-Dfile.encoding=UTF-8

配置完成之后,记得重启 IDEA 。

第六章:补充

  • 前面说过了,在 Windows 上 Docker 使用的是 WSL2 ,我们可以来验证一下。

1665708399269-7ff1b1c0-152c-4e01-9550-0a0c04d7af58.png

1665708405093-e7eb9147-f493-480c-9288-0a9d3ac24c7d.png

第七章:更新至 WSL 2.0 以上版本

7.1 准备工作

  • 需要系统升级到 win11 23H2 版本。

7.2 升级 WSL 到 2.0 版本以上

  • 使用命令升级:
wsl --update
  • 查询版本信息:
wsl -v

1699406092584-fc90fa27-02de-42d6-bd60-c26c53214cc4.png

注意:如果发现,依然没有将 WSL 的版本升级到 2.0 以上,请使用本人给的安装包手动升级 wsl2.0.7.zip

更新: 2024-07-15 02:28:07
原文: https://www.yuque.com/fairy-era/yg511q/pkv229

Comments