找回密码
 立即注册
首页 业界区 安全 windows环境下spring项目部署自己的docker和K8s(DAY1) ...

windows环境下spring项目部署自己的docker和K8s(DAY1)

颐港 2025-9-25 10:52:55
  嚯嚯,懒鬼又来咯。今天带来spring项目的docker部署。
  由于笔者公司条件限制,docker desktop 不可用。大部分操作都是WSL操作的。WSL是啥,建议大家自行观看,附上官网的链接(https://learn.microsoft.com/zh-cn/windows/wsl/install)。
  由于笔者是wsl2装的unbantu,这个是缺少docker的部件的。所以咱们从头开始。新装的unbantu也是缺少containerd服务,这个也得安装。
  1、安装containerd
  1. sudo apt install containerd
复制代码
  2、查看containerd是否安装成功
  1. containerd --version
复制代码
  3、下载docker服务
  1. sudo apt-get update
  2. sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release
复制代码
  1. curl -fsSL https://download.docker.com/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg<br>echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]') $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null<br>sudo apt-get update
复制代码
  1. sudo apt-get install -y docker-ce docker-ce-cli containerd.io
复制代码
  4、编辑服务
  查看这个docker的服务
  1. ls /lib/systemd/system/docker.service
复制代码
  没有就自己创建,具体内容如下
  1. [Unit]
  2. Description=Docker Application Container Engine
  3. Documentation=https://docs.docker.com
  4. After=network-online.target nss-lookup.target docker.socket firewalld.service containerd.service time-set.target
  5. Wants=network-online.target containerd.service
  6. Requires=docker.socket
  7. StartLimitBurst=3
  8. StartLimitIntervalSec=60
  9. [Service]
  10. Type=notify
  11. # the default is not to use systemd for cgroups because the delegate issues still
  12. # exists and systemd currently does not support the cgroup feature set required
  13. # for containers run by docker
  14. ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
  15. ExecReload=/bin/kill -s HUP $MAINPID
  16. TimeoutStartSec=0
  17. RestartSec=2
  18. Restart=always
  19. # Having non-zero Limit*s causes performance problems due to accounting overhead
  20. # in the kernel. We recommend using cgroups to do container-local accounting.
  21. LimitNPROC=infinity
  22. LimitCORE=infinity
  23. # Comment TasksMax if your systemd version does not support it.
  24. # Only systemd 226 and above support this option.
  25. TasksMax=infinity
  26. # set delegate yes so that systemd does not reset the cgroups of docker containers
  27. Delegate=yes
  28. # kill only the docker process, not all processes in the cgroup
  29. KillMode=process
  30. OOMScoreAdjust=-500
  31. [Install]
  32. WantedBy=multi-user.target
复制代码
  重启服务
  1. sudo systemctl daemon-reload<br>sudo systemctl enable docker<br>sudo systemctl start docker
复制代码
  查看是否正确运行
  1. systemctl status docker.service
复制代码
  同时我们可以进一步查看docker的版本
  1. docker version
复制代码
  至此,docker在wsl中已正确安装
  4、编写springBoot项目dockerfile
  1. FROM openjdk:17-jdk-alpine
  2. LABEL authors="lannoy"
  3. # 创建非 root 用户和用户组(提高安全性)
  4. RUN addgroup -S spring && adduser -S spring -G spring
  5. USER spring:spring
  6. # 复制 jar 文件并重命名(使用 COPY 比 ADD 更清晰)
  7. COPY --chown=spring:spring ./target/test-0.0.1-SNAPSHOT.jar app.jar
  8. # 声明应用端口(Spring Boot 默认 8080)
  9. EXPOSE 8080
  10. # 启动命令(去掉 &,让 Docker 管理进程)
  11. ENTRYPOINT ["java", "-jar", "app.jar"]
复制代码
  5、idea里面属性配置
  点击右上角的箭头选中编辑配置,弹窗编辑,编辑内容如图,注意右下角的内容,一定要连接成功才可以
1.png

  6.idea上传本地镜像
  注意要先打包本地项目成test-0.0.1-SNAPSHOT.jar,否则运行项目无法找到,imageTag也最好要自己新加。格式为:类型。运行上述dockerfile,结果如下图。
  
2.png

  我们再在wsl查看,结果如图
  
3.png

  7、运行本地镜像
  1. docker run -d -p 8080:8080 镜像id
复制代码
  这样我们的spring服务就完成了本机也是8080可以访问
  
 
  

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

20 小时前

举报

谢谢分享,试用一下
您需要登录后才可以回帖 登录 | 立即注册