docker 部署springboot项目(离线,内网)

docker部署springboot项目

我也看了一些其他的部署方案,这里几乎都一样,只是我这里需要注意的是我是内网,因为好的dockerFile里面需要 form jdk8,需要下载,我是先下载好jdk8,导入到docker镜像中,这样再用的时候,镜像里就有了,就不用在下载了,

我这里也简单说说我是怎么部署的吧

1.linux服务器上装docker

2.docker上装一个jdk8镜像,可以在有网的服务器上下载好镜像后迁移到内网中。

3.项目打包,跟平时一样,maven clean 然后打包就行,一个jar,记得本地java -jar xxx.jar启动试一下,确保jar没有问题。

4.编写Dockerfile文件,这个文件名就叫Dockerfile不要随便起名字,否则启动的时候需要加-f指定文件。

Dockerfile文件主要内容

# 指定jdk版本,因为java是运行在jdk上的,所以需要下载一个java-jdk
# form的意思就是这个项目依赖于它,要运行它之前得有jdk8,
# 安装我上面的想法,如果你联网着,直接这样写,
# 如果你没有联网,那你就要提前下载好jdk镜像,并转移到内网docker里。
# 记得这里的jdk:1.8 jdk是镜像名,冒号和后面的1.8指定版本
FROM jdk:1.8

# 这里创建一个匿名挂载,这里的意思就是把容器内的/tmp目录,映射到主机的/var/lib/docker/volumes/数据卷下的一个目录/_data目录。
# 因为springboot项目内嵌tomcat服务,而tomcat服务默认使用/tmp作为工作目录
VOLUME /tmp

# 把springboot-1.0-snapshot.jar这个jar包导入进来,并且重新命名为springboot.jar
add springboot-1.0-snapshot.jar springboot.jar

# 修改文件的访问和运行时间,为当前时间
RUN bash -c "touch /springboot.jar"

# 有的人写端口号,有的人不写,这里可以不写,只要run的时候-p指定就行
#EXPOSE 8080

# 设置时区,不设置,你的docker容器内部的时间就会慢8小时,
# 会导致你的日志记录慢8小时
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/timezone

# 等于java -jar xx.jar
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urrandom", "springboot.log"]

5.在服务器上建立一个空目录,

将刚编写好的Dockerfile文件和springboot-1.0-snapshot.jar传到这个目录里

6.导入到docker里

将jar导入到docker镜像里

#切记最后面一定要有个点 
# springboot不是随便起的,是你的DockerFile文件里写的
docker build -t springboot .

#导入后记得查看一下
docker images
# 这里查到的镜像,记得springboot项目的镜像id,下面启动会用到

# 启动springboot项目
# -d后台启动,-p 指定端口号,第一个8080是外部访问linux服务的端口号,第二个是服务的端口号,
# -v 是映射目录,一般springboot项目就映射一个日志路径,其他的自己研究吧。
# --name 是镜像启动后的容器名字叫springb
docker run -d p 8080:8080 --name springb -v /opt/logs:/opt/logs/service 镜像id

7.验证

直接方位服务器的ip加端口号,如果你是阿里云服务器,记得开防火墙和开放端口

http://ip:8080

8.日志查询

查看启动日志

docker logs -f 容器id

docker logs -f --tail=10 容器id

9.部署多个springboot项目

主要就是docker run的时候-p指定的端口号不一致就行。

就可以同一个服务启动多次了。

docker run -d p 8082:8080 --name springb3 -v /opt/logs:/opt/logs/service 镜像id

docker run -d p 8081:8080 --name springb2 -v /opt/logs:/opt/logs/service 镜像id

docker run -d p 8080:8080 --name springb -v /opt/logs:/opt/logs/service 镜像id

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值