docker部署springboot项目

之前搭建的springboot项目本地测试OK,下一阶段就是部署到服务器上并运行了,这里我准备基于docker以容器化的方式来尝试部署

前提条件

你的机器已经安装了docker,并且已经pull了openjdk镜像,如果没有可以通过如下命令来获取:

docker pull openjdk:8

构建Dockerfile文件

首先我们需要Dockerfile文件来描述来构建docker镜像,在其中编写构建一层一层layer的命令,我的Dockerfile文件:

FROM openjdk:8
COPY target/xxx-0.0.1-SNAPSHOT.jar /tmp/app.jar
WORKDIR /tmp
ENTRYPOINT ["java","-jar","app.jar"]

注意xxx是你的项目的jar包产物,你需要提前通过build命令来制作:

mvnw clean package

此外注意的是我们的Dockerfile文件是存放在项目的根目录下,所以COPY命令定位的jar产物地址多了一层target目录,具体PATH根据你们实际项目而定

最后简单描述一下上面的命令,简单来说就是我们的镜像是在openjdk:8的基础上进行构建,首先我们会将项目target下的jar包copy到container的/tmp目录下并重命名为app.jar,接着切换工作目录到/tmp下,最后执行:

java -jar app.jar

IDEA的Docker配置

Dockerfile文件构建完毕之后就需要执行去构建image并尝试跑起来container来测试了

这里有两种方式可以实现,第一种是基于命令行完全使用docker指令来进行build和run操作,还有一种是借助IDEA的docker服务,后者相对来说配置好了易用性和功能性还是不错的,所以这里采用第二种方式

首先新增一种Debug/Run方式,具体看下图:

image

上面主要是新增一种基于Dockerfile的运行方式,同时完成基本的配置之后,直接点击绿色Run按钮就可以自动在本机跑起来一个对应的container了,接着访问http://localhost:8080/xxx应该就可以访问到你的服务了

此外针对windows这边有时候connect的时候会报一个错误,类似如下格式:

Cannot connect: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: localhost:127.0.0.1:2375
caused by: java.net.ConnectException: Connection refused: no further information

这个需要去你的docker desktop软件settings中将下图这个选项勾选一下:

image

然后再重新尝试一下就可以了

镜像上传

最后我们需要将我们的镜像上传到你可以访问的docker仓库中,如果是公司项目可以上传到你们公司的私有仓库中

docker push <image-tag>

服务端部署

服务端需要安装好docker,并通过如下的命令来获取之前我们push的镜像并run起来container:

docker pull <image-tag>
docker run -p 8080:8080 <image-tag>

然后你就可以试试从本机访问了:

image

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值