0.引入
Windows是目前最稳定的操作系统,拥有庞大的软件生态,特别是日常应用和一些便捷的小工具。而且Windows11在UI上进行了大幅的改善,这两点便是我离不开这个操作系统的原因。
然而令人遗憾的是Windows并不支持原生docker,通过子系统的办法也能够使用,但是这样会有很大的内存开销。
正好我手头有一台闲置的笔记本,于是便想将它利用起来弥补这个不足。
1.思路
在本地进行项目开发,完成打包后通过scp拷贝到服务器,接着编写dockerfile进行容器化。(一切测试正常之后再发布到GitHub)
2.过程记录
2.1 本地开发
- 创建一个Web项目
- 写个最简单的HelloWorld
package com.example.demo.controller;
@RestController
public class TestController {
@RequestMapping("/")
public String hello() {
return "Hello World";
}
}
#application.properties
server.port=8080
- 用IDEA内置Maven工具打包
- 编写dockerfile
FROM java:8
ADD /target/demo-0.0.1-SNAPSHOT.jar demo.jar
ENTRYPOINT ["java","-jar","demo.jar"]
EXPOSE 8080
- 复制到服务器
scp -r .\demo\ osboxes@192.168.0.113:~
2.2 在服务器容器化
- 通过dockerfile创建镜像
docker build -t test/demo .
- 查看后,通过镜像创建并运行容器
docker run -p 2333:8080 test/demo
- 访问页面,进行测试
一切正常。
3.个人体会
可能在企业开发中会有一整套的CI/CD流程,整个开发测试环境也会有很大的不同。
不过就我个人的小项目来说,容器化只是在部署之前的一个环节,测试的话还是自己在本地进行测试。
目前这个解决方案能够满足我Windows开发和练习Docker使用的需求了。
其实这是最原始的解决方案(在WSL之前),不过我觉得这依旧是最好的解决方案,多一条文件拷贝命令就能节省几个G的内存占用。(当然主机内存够大的话,直接使用WSL体验应该是最好)