我的环境:centos7.9,docker版本20.10.21,docker-compose版本1.25.0
1、springboot程序的jar包制作、上传
在项目根路径通过cmd窗口打包
mvn clean package -Dmaven.test.skip=true
服务器创建对应工作目录
mkdir -p /data/work/jar/
上传jar包到/data/work/jar/目录下
2、编写Dockerfile文件
cd /data/work/
vim Dockerfile
写入以下内容
# 设置基础镜像,自行选择jdk镜像
FROM adoptopenjdk:8-jre
# 复制jar程序包
ADD jar/*.jar app.jar
# 设置时区
RUN echo "Asia/Shanghai" > /etc/timezone
# 运行jar包
ENTRYPOINT java -jar app.jar
3、编写docker-compose.yaml文件
cd /data/work/
vim docker-compose.yaml
写入以下内容
version: '3'
services:
#服务名称,自定义
myapp:
#基于Dockerfile构建镜像
build:
context: .
dockerfile: Dockerfile
#镜像名称,若没有会基于build自动创建镜像
image: app:1.0
#容器名称,自定义
container_name: app
restart: always
#宿主机和容器端口映射
ports:
- '8080:8080'
#宿主机和容器目录映射
volumes:
- /data/work/logs:/data/work/logs
- /data/work/resources:/data/work/resources
logging:
options:
max-size: 5m
4、目录详情
[root@iZ2vcer6gtjgq8pi6uq22dZ work]# ll
总用量 20
-rw-r--r-- 1 root root 568 11月 2 20:04 docker-compose.yaml
-rw-r--r-- 1 root root 461 11月 2 20:04 Dockerfile
drwxr-xr-x 2 root root 4096 11月 10 01:00 logs
drwxr-xr-x 2 root root 4096 11月 2 20:35 resources
drwxr-xr-x 2 root root 4096 11月 9 11:40 jar
5、启动程序容器
docker-compose up -d
查看运行日志
[root@iZ2vcer6gtjgq8pi6uq22dZ work]# docker logs -f app
2022-11-09 15:43:44.030 INFO 7 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$d0ed2126] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.3.4.RELEASE)
更新程序步骤,需要停止当前app容器,删除app容器,删除app:1.0镜像,更换好jar包再重新启动即可。
docker stop app
docker rm app
docker rmi app:1.0
docker-compose up -d
结束。