参考资料:
参考课程:https://ke.gupaoedu.cn/play/288/5/37604?phaseId=6
准备材料:
1. 可运行且可访问的jar包
java
@Controller
public class DockerController {
@PostMapping("helloWorld")
public ResponseEntity<String> helloWorld(){
System.out.println("=====>helloWorld<=====");
return new ResponseEntity<>("helloWorld",HttpStatus.OK);
}
}

2. Docker环境

原理介绍
基于docker文件的分层(layer)概念
DockerFile可以通过程序,将很多层变成一个image

DockerFile 有自己的语法,可以参考docker-library中的文件,结合AI帮助来写
将Jar包打包为Image:
1. 执行如下命令,将项目打包成jar包
bash
mvn clean package

2. 创建文件夹并上传文件
在linux服务器创建文件夹,并将打包好的jar包上传至文件夹中,比如 docker_helloWorld
bash
mkdir docker_helloWorld


3. 创建dockerfile 编辑
使用命令,在文件夹中,创建Dockerfile,并编辑
bash
vi Dockerfile
然后将下面内容粘贴进去(具体内容可以用AI进行解释)
bash
FROM openjdk:8
MAINTAINER peter2026
LABEL name="dockerfile-demo" version="1.0" author="peter2026"
COPY docker-hello-world-0.0.1-SNAPSHOT.jar dockerfile-image.jar
CMD ["java","-jar","dockerfile-image.jar"]
4. 构建镜像
如果使用默认的dockerHub来获取openJDK的话,可能需要做一些代理或者加速服务,参考B站
如果还是不行的话,可以先把from语句的镜像拉取到本地,然后再构建
bash
docker pull cf-workers-docker-io-6es.pages.dev/openjdk:8u102-jdk
执行如下语句进行构建(注意后面的一点,表示当前目录)
bash
docker build -t my-docker-image .

然后执行docker images就可以看到构建好的镜像

5. 运行镜像
将构建好的镜像运行,执行下面命令
bash
docker run -d --name my_container_01 -p 6666:8080 my-docker-image
上面是将container的8080端口映射到了Linux虚拟机的6666端口
执行下面命令查看运行的容器
bash
docker ps

6. 访问运行的jar包
查看docker所在系统的IP
bash
ip a

然后用PostMan进行访问即可,比如
192.168.124.128:6666/helloWorld
