需求背景
常规方式的部署jar包,是直接将jar包打入镜像,每次更新上线,都需要重新上传镜像,如果是没有外网的远程内部服务器,传输速度很满,因为镜像可能是几百M。
解决方案
我们只需要将java8镜像上传一次到服务器,后续只需要更新jar包即可。
目录结构
- jar - 用于放打包好的jar
- logs - 映射日志文件
- docker-compose.yml
其中docker-compose.yml
如下:
version: '3.0'
services:
app:
container_name: app
restart: always
image: java:8
ports:
- 8080:8080
volumes:
- ./jar/app.jar:/root/app.jar:z
- ./logs/:/root/logs
environment:
- TZ=Asia/Shanghai
entrypoint: java -jar -Dfile.encoding=utf-8 /root/app.jar
privileged: true
基础镜像
# 下载镜像
$ docker pull java:8
# 导出镜像
$ docker save 镜像ID > xxx.tar
# 加载镜像
$ docker load -i xxx.tar