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

彻底卸载

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=(curl−s−XPOSThttp://172.18.0.2:8081/api1/public/login −H"Content−Type:application/json" −d′"username":"admin","password":"admin123"′)jwttoken=(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 "response"∣grep−o′"token":"["]∗"′∣sed′s/"token":"//;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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值