JDK17 + Springboot3 + CentOS7.5 的Docker安装及部署

发布于:2025-07-04 ⋅ 阅读:(10) ⋅ 点赞:(0)

彻底卸载

sudo yum remove -y docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker /etc/docker

安装依赖

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

添加阿里云镜像源

sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i ‘s/download.docker.com/mirrors.aliyun.com/docker-ce/g’ /etc/yum.repos.d/docker-ce.repo

安装 Docker CE

sudo yum install -y docker-ce docker-ce-cli containerd.io

启动并设置开机自启

sudo systemctl start docker
sudo systemctl enable docker

验证安装

docker version

在你本地编译并产生 JDK17+Springboot web 的Jar包

cd D:\workspace_java\jdk17Test\jdk17Test
mvn clean package -DskipTests

服务器上 - put the compiled file

服务器目录结构

/app/jdk17ApplicationJar
|-Dockerfile
|-jdk17Test-1.0-SNAPSHOT.jar

mkdir /app/jdk17Application
sftp root@192.168.98.157
put /d/workspace_java/jdk17Test/jdk17Test/target/jdk17Test-1.0-SNAPSHOT.jar /app/jdk17Application/

创建或修改配置文件

详见https://cloud.tencent.com/developer/article/25294185

sudo tee /etc/docker/daemon.json <<-‘EOF’
{
“registry-mirrors”: [
“https://docker-0.unsee.tech”,
“https://docker-cf.registry.cyou”,
“https://docker.1panel.live”
]
}
EOF

重启Docker生效

sudo systemctl daemon-reload
sudo systemctl restart docker

#编辑Dockerfile
FROM openjdk:17-jdk
VOLUME /tmp
COPY jdk17Test-1.0-SNAPSHOT.jar app.jar
EXPOSE 8080
ENTRYPOINT [“java”, “-Djava.security.egd=file:/dev/./urandom”, “-jar”, “/app.jar”]

#编译,生成镜像,这个时候/etc/docker/daemon.json是否有效就很重要
docker build -t springboot-jdk17-app .

#创建网络
docker network create --driver bridge springboot-net

#启动镜像
docker run -d
–name springboot-container
–network springboot-net
-p 8081:8081
springboot-jdk17-app

#获取容器 IP
docker inspect -f ‘{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}’ springboot-container
#检查端口映射
docker port springboot-container 8081
#确认服务启动
docker logs -f springboot-container

#登录
response= ( c u r l − s − X P O S T h t t p : / / 172.18.0.2 : 8081 / a p i 1 / p u b l i c / l o g i n   − H " C o n t e n t − T y p e : a p p l i c a t i o n / j s o n "   − d ′ " u s e r n a m e " : " a d m i n " , " p a s s w o r d " : " a d m i n 123 " ′ ) j w t t o k e n = (curl -s -X POST http://172.18.0.2:8081/api1/public/login \ -H "Content-Type: application/json" \ -d '{"username":"admin", "password":"admin123"}') jwt_token= (curlsXPOSThttp://172.18.0.2:8081/api1/public/login H"ContentType:application/json" d"username":"admin","password":"admin123")jwttoken=(echo " r e s p o n s e " ∣ g r e p − o ′ " t o k e n " : " [ " ] ∗ " ′ ∣ s e d ′ s / " t o k e n " : " / / ; s / " response" | grep -o '"token":"[^"]*"' | sed 's/"token":"//;s/" response"∣grepo"token":"["]"seds/"token":"//;s/"//')
echo $jwt_token

#访问容器中的API
curl -X GET “http://172.18.0.2:8081/api/books/author/John%20Doe” -H “Authorization: Bearer $jwt_token”
curl -X POST “http://172.18.0.2:8081/api/books/createBook” -H “Content-Type: application/json” -H “Authorization: Bearer $jwt_token” -d ‘{“title”:“Spring Boot Guide”,“author”:“John Doe”}’

#通过容器访问API
curl -X GET “http://localhost:8081/api/books/author/John%20Doe” -H “Authorization: Bearer $jwt_token”
curl -X POST “http://localhost:8081/api/books/createBook” -H “Content-Type: application/json” -H “Authorization: Bearer $jwt_token” -d ‘{“title”:“Spring Boot Guide”,“author”:“John Doe”}’

#查看容器运行状态
[root@localhost jdk17ApplicationJar]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
38f3f08ef048 springboot-jdk17-app “java -Djava.securit…” 17 minutes ago Up 17 minutes 8080/tcp, 0.0.0.0:8081->8081/tcp, :::8081->8081/tcp springboot-container

#启停容器并查看状态
docker stop springboot-container && docker rm springboot-container
docker stop 38f3f08ef048
docker start 38f3f08ef048
docker container logs 38f3f08ef048

#进入容器
docker exec -it 38f3f08ef048 /bin/bash


网站公告

今日签到

点亮在社区的每一天
去签到