【windows安装wsl,安装docker,部署web应用程序(干货)】

环境搭建:

  1. Java开发工具包 (JDK)
    软件:JDK11
    推荐版本: JDK11
    安装说明:选择适合您操作系统的版本,安装后配置JAVA_HOME环境变量

  2. 集成开发环境 (IDE)
    主IDE:IntelliJ IDEA (社区版免费)
    备选:Eclipse IDE

一、WSL(Windows Subsystem for Linux)

1、下载WSL

wsl官网介绍:适用于 Linux 的 Windows 子系统 (WSL) 是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双引导。

方法一: 官网 wsl安装(点击即可),可能需科学上网

## 查看可安装的版本
wsl --list --online
C:\Windows\system32>wsl --list --online
以下是可安装的有效分发的列表。
使用 'wsl.exe --install <Distro>' 安装。

NAME                            FRIENDLY NAME
AlmaLinux-8                     AlmaLinux OS 8
AlmaLinux-9                     AlmaLinux OS 9
AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10
Debian                          Debian GNU/Linux
FedoraLinux-42                  Fedora Linux 42
SUSE-Linux-Enterprise-15-SP5    SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6
Ubuntu                          Ubuntu
Ubuntu-24.04                    Ubuntu 24.04 LTS
archlinux                       Arch Linux
kali-linux                      Kali Linux Rolling
openSUSE-Tumbleweed             openSUSE Tumbleweed
openSUSE-Leap-15.6              openSUSE Leap 15.6
Ubuntu-18.04                    Ubuntu 18.04 LTS
Ubuntu-20.04                    Ubuntu 20.04 LTS
Ubuntu-22.04                    Ubuntu 22.04 LTS
OracleLinux_7_9                 Oracle Linux 7.9
OracleLinux_8_7                 Oracle Linux 8.7
OracleLinux_9_1                 Oracle Linux 9.1

## 安装
wsl --install  或者指定版本   wsl --install -d <Distribution Name>

方法二: 打开微软商店,搜索ubuntu,点击获取,无需科学上网即可安装下载

2、查看已安装的WSL版本

wsl -l -v 

结果:
  NAME              STATE           VERSION
* Ubuntu-22.04      Stopped         2

将版本从 WSL 1 升级到 WSL 2
使用 wsl --install 命令安装的新 Linux 安装将默认设置为 WSL 2。
命令可用于从 WSL 2 降级到 WSL 1,或将以前安装的 Linux 发行版从 WSL 1 更新到 WSL 2。

wsl --set-version 

二、Web 应用程序(以Spring boot为例)

1、安装idea社区版 官网

2、下载spring Web压缩包

1、打开 spring.io 快速新建spring Web项目
在这里插入图片描述

2、下载
点击 “生成” 按钮,下载 zip 文件,使用idea打开项目
增加一个简单的web网页交互

package com.example.javademoWeb;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class JavademoWebApplication {

	public static void main(String[] args) {
		SpringApplication.run(JavademoWebApplication.class, args);
	}
	@GetMapping("/hello")
	public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
		return String.format("Hello %s!", name);
	}
}

我们添加的方法旨在采用一个名为 name 的 String 参数,然后将此参数与代码中的单词组合在一起。这意味着,如果您在请求中将 name 设置为 ,则响应将为 “Hello Amy”。hello()“Hello”“Amy”

该注释告诉 Spring 此代码描述了一个应该在 Web 上可用的端点。它告诉 Spring 使用我们的方法来回答发送到该地址的请求。最后,它告诉 Spring 在请求中期望一个 name 值,但如果它不存在,它将默认使用这个词。

3、运行截图

点击idea中右上角的小绿标,运行
打开浏览器,输入

http://localhost:8080/hello?name=张三

在这里插入图片描述
至此web项目demo访问成功。

三、安装 docker

在 WSL 中安装 Docker,并配置 Docker 服务。通过 Docker 客户端验证安装是否成功,并确保 Docker 能够正常运行。

1、配置 Docker 环境

# 检查WSL和Docker状态
wsl --list -v
docker --version
docker-compose --version

2、部署 Web 应用程序

在idea中的应用程序目录大致如下:
your-project/
├── src/
├── pom.xml 或 build.gradle
├── Dockerfile
└── docker-compose.yml (可选)

  1. 修改数据库配置
    application.propertiesapplication.yml中的数据库连接改为Docker环境配置:
生产环境配置 (src/main/resources/application-prod.properties)
spring.datasource.url=jdbc:mysql://mysql-db:3306/yourdb?useSSL=false
spring.datasource.username=dbuser
spring.datasource.password=dbpass
spring.jpa.hibernate.ddl-auto=update
  1. Dockerfile
# 构建阶段
FROM maven:3.8.6-openjdk-11 AS build
WORKDIR /workspace
COPY pom.xml .
# 先只复制pom文件,利用Docker缓存层
RUN mvn dependency:go-offline
COPY src src
# 打包应用
RUN mvn package -DskipTests
# 最终阶段
FROM openjdk:11-jre-slim
WORKDIR /app
# 从构建阶段复制jar文件
COPY --from=build /workspace/target/*.jar app.jar
# 时区设置(可选)
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 暴露端口
EXPOSE 8080
# 启动命令
ENTRYPOINT ["java", "-jar", "app.jar", "--spring.profiles.active=prod"]

docker-compose.yml (推荐)

version: '3.8'

services:
  app:
    build: .
    ports:
      - "8080:8080"
    environment:
      - SPRING_PROFILES_ACTIVE=prod
    depends_on:
      - mysql-db
    restart: unless-stopped
    networks:
      - app-network

  mysql-db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: yourdb
      MYSQL_USER: dbuser
      MYSQL_PASSWORD: dbpass
    volumes:
      - mysql-data:/var/lib/mysql
    ports:
      - "3306:3306"
    networks:
      - app-network
    restart: unless-stopped

volumes:
  mysql-data:

networks:
  app-network:
    driver: bridge
注意

一 定 要 注 意 jdk 的 版 本 和 spring boot 的 版 本 相 对 应

3、运行访问

  1. 在Windows端构建项目
cd your-project-path

清理并打包项目(跳过测试)

mvn clean package -DskipTests
  1. 将项目文件传输到WSL
在WSL中创建项目目录
wsl -d Ubuntu-22.04 -- bash -c "mkdir -p ~/docker-projects/your-project"

复制整个项目到WSL(保留文件权限)
Copy-Item -Path ".\*" -Destination "\\wsl$\Ubuntu-22.04\home\$env:USERNAME/docker-projects/your-project" -Recurse
  1. 在WSL中构建和运行Docker容器
进入WSL终端
wsl -d Ubuntu-22.04

进入项目目录
cd ~/docker-projects/your-project

构建并启动容器(使用docker-compose)
docker-compose up --build -d

查看日志确认启动情况
docker-compose logs -f app

至此,可以在本地浏览器中访问

http://localhost:8080

我的效果如图,可正常访问:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值