使用Dockerfile构建一个简单的SpringBoot镜像

https://blog.csdn.net/weixin_39128265/article/details/106097928?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-106097928-blog-98631992.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-106097928-blog-98631992.pc_relevant_default&utm_relevant_index=2

在足球还叫蹴鞠的时候,我就写了一篇有关于dockerfile的文章,本来想着靠那篇文章火一把,从此脱离开发仔的身份,专心写文。结果很意外,这篇Dockerfile指令详解的文章竟然访问量比我的头发还少。甚至好长一段时间我都忘了它的存在,该死!

在经过了长时间的思考后,我终于知道为什么这篇文章会不火了,我他妈没买量!!!

好吧,上面扯那么多其实就是为了植入我那篇过气的文章。下面进入主题。

在我们想把自己的程序打包成镜像,并运行在docker容器中的时候我们应该怎么做呢?

1.编写Dockerfile文件。

不了解Dockerfile指令的请跳转链接。

#指定基础镜像(一般指定程序所依赖的环境)
#本例子是构建SpringBoot所以我指定的jdk环境变量
FROM openjdk:11

#添加维护者信息
MAINTAINER author:edison
MAINTAINER mail:edisonlil@163.com

#将./hello-world.jar添加到容器的/opt目录中
COPY ./hello-world.jar /opt

#指定dockerfile的命令在哪个目录下执行
WORKDIR /opt

#指定容器和外界交互的端口
EXPOSE 80

#容器运行后执行的命令(该命令在WORKDIR指定的工作目录下执行)
#注意:多个CMD指令只有最后一个会生效
CMD java -jar hello-world.jar

#在构建镜像时执行的命令
#我这边用它来打印java的环境变量
RUN java -version

#添加该镜像的元数据
LABEL version="1.0" description="这是一个Web服务器" by="edc"

2.将你的Dockerfile文件和你的jar包放在同一个目录里

注意:Dockerfilejar包最好存放在一个创建好的空目录里,不要放在/目录中,因为构建是由Docker守护程序而不是CLI运行的。构建过程要做的第一件事是将整个上下文(递归)发送到守护程序。在大多数情况下,最好以空目录作为上下文,并将Dockerfile保留在该目录中。仅添加构建Dockerfile所需的文件。所以如果你要是将Dockerfile放在/目录构建,你就是在犯罪,懂吗?
在这里插入图片描述

由于我上面dockerfile的例子hello-world.jar是放在./目录下也就是和Dockerfile的同一目录,如果说你的jar包不和dockerfile同一目录的话那么COPY指令的那个./hello-world.jar就要换成你jar包存放的路径。


3.在Dockerfile所在的目录下运行docker build --tag web:latest .命令

不了解docker build命令的请跳转链接。

注意:docker build 后面要加.参数,代表着构建当前目录的Dockerfile文件。而--tag是给镜像取一个名字,并指定镜像的版本号,此时构建好的镜像名字为web,版本号为latest
在这里插入图片描述
可以看到执行了docker build .后除了打印指令的执行信息之外还在8/9行中打印了容器里的JDK环境变量,这是因为我使用RUNz执行了java -version命令。


4.我们执行一下docker images命令查看我有没有我们刚刚构建好的镜像
在这里插入图片描述
这时候表示镜像构建成功。


5.使用docker run通过构建好的新镜像跑一个容器
在这里插入图片描述


6.访问一下
在这里插入图片描述

成功!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值