PS:博主使用win11系统

一、前置配置

Docker在Windows系统中存在两种独立的运行模式,需根据自身系统版本和使用需求先选择对应模式,再执行后续安装步骤。

两种模式不可同时启用,具体适配信息如下:

运行模式

依赖组件

适用系统版本

核心优势

wsl2模式

WSL 2 + Hyper-V底层监控程序

Win10/Win11 家庭版、专业版、企业版

1. 资源占用低(仅数百MB内存) 2. 启动速度快(1-3分钟) 3. 兼容VMware 16.0+等虚拟机工具

Hyper-V模式

完整Hyper-V功能

Win10/Win11 专业版、企业版

1. 支持与Hyper-V虚拟机联动 2. 系统级虚拟化稳定性强

家庭版系统仅支持WSL 2模式;专业版/企业版优先推荐WSL 2模式,仅在需要Hyper-V联动时选择Hyper-V模式。

二、通用前置准备(两种模式均需完成)

2.1 开启CPU虚拟化

检查CPU是否开启虚拟化



若没用启用,如何启用?

1.关闭电脑,然后打开它并进入 BIOS 界面。通常需要按下 DEL、F1、F2 或 F10 键来进入 BIOS 界面(具体按键可能因计算机品牌和型号而有所不同,请根据自己的电脑手册进行确认)。

笔记本一般来说是F2

2.在 BIOS 设置界面中,切换到“高级菜单”或类似命名的选项卡,然后寻找“CPU 配置”或“芯片组配置”等相关设置。

3.找到“虚拟化技术”,这个选项可能命名为 VT-x、AMD-V 或者 Intel Virtualization Technology 等,选择它并将其设置为“启用”。

4.确认更改并保存 BIOS 设置。不同计算机品牌或型号可能执行此操作的方式略有不同,一般情况下可以在相应选项卡下使用“Save and Exit”或类似选项来保存修改并退出 BIOS 界面。

5.最后重新启动计算机,使得新的BIOS设置生效。

2.2 开启Hyper-V底层监控程序

以管理员方式运行 Windows PowerShell,输入 bcdedit,即可查看

如果没有“hypervisorlaunchtype”这个属性或者值不是Auto,则需要输入下面命令,再进行电脑重启。

bcdedit /set hypervisorlaunchtype auto

记住执行以后,要生效得重启电脑

三、WSL 2模式安装流程(通用版)

3.1 开启WSL 2相关Windows功能

1.按Win+R键,输入“optionalfeatures”并回车,打开“Windows功能”窗口,勾选以下功能

2.点击“确定”,等待功能安装完成后重启电脑

3.2 安装WSL 2子系统

1.以管理员身份运行PowerShell,执行安装命令:

wsl --install该命令会自动安装默认Linux发行版(通常为Ubuntu)

2.版本验证:重启后执行以下命令,确认WSL版本为2:

wsl --status若显示版本为1,执行升级命令:wsl --update

二、安装配置Docker

1.下载安装包,在Docker官网下载最新的安装包(https://www.docker.com/products/docker-desktop/

2.右键管理员运行下载的安装程序,,勾选上关键选项(Use WSL 2 instead of Hyper-V)



3.点击“OK”完成安装,安装后重启电脑。

3.4 安装验证
1.启动Docker Desktop:双击桌面快捷方式,首次启动可选择“Skip”跳过登录,等待系统托盘图标显示“Docker Desktop running”;
2.命令行验证:打开PowerShell或CMD,执行以下命令:

//查看Docker版本
docker --version

输出版本即为成功

3.运行测试容器:

docker run hello-world


若输出“Hello from Docker!”,说明安装成功。

3.5 与VMware兼容性配置
WSL 2模式与VMware 16.0+版本可直接共存,无需额外配置;
若使用VMware 15.x及以下版本,需升级至16.0+版本,否则会出现虚拟化冲突。
 

使用指南

1.镜像

1.拉取镜像

拉取镜像就相当于下载程序,比如你要是用Tomcat启动程序那么你就要先去下载Tomcat程序。

拉取命令

docker pull <镜像名称>
#示例
docker pull tomcat

如果对需要的镜像有特殊要求,如版本等可以加上版本号

#如拉取Tomcat9
docker pull tomcat:9
#或者需要更具体的版本
docker pull tomcat:7.0.109-jdk8-openjdk

2.构建镜像

构建镜像是将自己的项目构建为自定义镜像方便放置在Docker中运行,这样的好处是能够极大程度的提高安全性

构建镜像需要准备你的程序(这里是打成了war包)、Dockerfile文件、数据库驱动(如果程序中不包含就需要在这里放置,如果程序中有就不用了),目录结构如下:

your-project/
├── myapp.war
├── Dockerfile
└── 数据库驱动

构建命令

上面创建的项目目录(your-project)输入cmd进入命令行,输入以下命令进行自定义镜像构建

docker build -t <自定义镜像名> .
#示例
docker build -t myapp .  #注意这个“.”不能漏掉,他代表构建的是你当前目录的项目

Dockerfile示例:

# 使用 Tomcat 7 + JDK8(兼容 Oracle 11g)
FROM tomcat:7.0.109-jdk8-openjdk

# 设置时区(关键!)
ENV TZ=Asia/Shanghai
ENV JAVA_OPTS="-Duser.timezone=Asia/Shanghai"

# 删除默认 ROOT(可选,避免冲突)
RUN rm -rf /usr/local/tomcat/webapps/ROOT

# 添加 Oracle JDBC 驱动
COPY ojdbc8.jar /usr/local/tomcat/lib/

# 部署应用为 nfdc.war → 自动映射到上下文路径 /nfdc
COPY jweb_fdc.war /usr/local/tomcat/webapps/nfdc.war

EXPOSE 8080

CMD ["catalina.sh", "run"]

镜像命令总结

搜索:docker search '镜像名'[:指定版本]

拉取:docker pull '镜像名'[:指定版本]

删除:docker rmi '镜像名'[:指定版本]

查看本地镜像:docker images/docker image ls

镜像历史:docker history '镜像名'

2.容器

启动容器

1.在Docker desktop图形界面启动

2.docker-compose启动

因为在Docker中的容器都是独立的,如果有需要容器中通信的就推荐使用docker-compose模式启动,这样可以指定将不同的容器在同一个网络中运行实现容器间的通信

自定义网络命令

docker network create <自定义网络名称>
#示例
docker network create myapp-network

启动命令

# -d表示后台运行
docker-compose up -d

使用该模式启动需要先保证应用镜像已经构建。

下面以nginx代理Tomcat启动端口为例,需要创建单独的文件夹(推荐)在文件夹中需要创建nginx.conf、docker-compose.yml两个文件,nginx.conf是nginx的配置文件这里使用外部挂载可以实现便捷修改配置,docker-compose.yml为docker-compose模式启动的配置文件,文件结构如下:

your-project/
├── docker-compose.yml
└── nginx.conf

docker-compose.yml文件内容示例

version: '3.8'

services:
  fdc-app:
    image: myapp  #自定义构建的镜像名称,就是前面提到的项目构建的镜像
    container_name: myapp  #给容器自定义的名字
    networks:   # 加入自定义网络,是nginx能代理端口的关键
      - myapp-network  #自定义网络名称

    
   

  nginx-proxy:
    image: nginx  # 轻量版 nginx
    container_name: nginx-myapp
    ports:
      - "28080:80"          # 将宿主机 28080 端口映射到 nginx 容器 80 端口
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro  # 只读挂载
    networks:
      - myapp-network
    depends_on:
      - myapp  #容器启动顺序

networks:
  myapp-network:
    external: true  # 使用你已创建的外部网络

容器命令总结

启动:docker run '镜像名'

后台启动:-d

端口映射:-p '本地端口':'容器端口',👉port即端口

查看正在运行容器:docker ps

查看所有容器:docker ps -a

运行容器:docker start '容器别名'|'容器ID'

停止正在运行容器:docker stop '容器别名'|'容器ID'

重启容器:docker restart '容器别名'|'容器ID'

删除容器:docker rm [-f] '容器别名'|'容器ID'

删除多个容器:docker rm [ID1] [ID2] [ID...]

容器状态:docker stats '容器别名'|'容器ID'

容器日志:docker logs '容器名'|'容器ID'

更多推荐