Dockerfile
是一个用来将你的应用构建为docker
镜像的文本文件,文本中的内容是一条一条的指令,这些指令的集合在docker
引擎中执行,最终构建出你的应用的docker
镜像。java
须要小伙伴们先在本地或者服务器上安装docker
git
docker安装看这篇就够了github
先来看一个简单的Dockerfile
文件web
FROM hub.c.163.com/library/java:8 VOLUME /tmp ADD target/springboot-docker-0.0.1-SNAPSHOT.jar docker.jar RUN bash -c 'touch /docker.jar' ENTRYPOINT ["java","-jar","/docker.jar"]
FROM
:须要构建镜像的项目所须要依赖的基础镜像
,SpringBoot
项目是跑在JDK
之上的spring
VOLUME
:定义匿名数据卷,容器在运行的时候,会将数据写入到这个数据卷中,这里设置为一个临时目录docker
ADD
:将target目录下的springboot-docker-0.0.1-SNAPSHOT.jar
包添加到docker
容器中,并将名称进行修改成docker.jar
shell
RUN
:执行后其后面的命令浏览器
ENTRYPOINT
;在容器启动以前的预约义执行脚本命令springboot
下面咱们,建立一个简单的SpringBoot
项目来验证一下咱们上文所说的。bash
打开的你的idea
建立一个SpringBoot
项目,咱们只须要在pom.xml
中加上以下依赖便可
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
在项目目录项建立一个controller
包,建立一个DockerFileController
类,编写以下接口
/** * @author:triumphxx * @Date:2020/8/1 * @Time:4:53 下午 * @微信公众号:北漂码农有话说 * @网站:http://blog.triumphxx.com.cn * @GitHub https://github.com/triumphxx **/ @RestController public class DockerFileController { @RequestMapping("/docker") public String dockerFileRun(){ System.out.println("dockerfile测试"); return "DockerFile"; } }
在你的项目下使用maven
将项目打成一个jar
包,这时项目的target
目录下就会有一个springboot-docker-0.0.1-SNAPSHOT.jar
包。
在你的项目根目录建立Dockerfile
文件,下面的文件内容也就是咱们文章开头的那个文件。
FROM hub.c.163.com/library/java:8 VOLUME /tmp ADD target/springboot-docker-0.0.1-SNAPSHOT.jar docker.jar RUN bash -c 'touch /docker.jar' ENTRYPOINT ["java","-jar","/docker.jar"]
以上工做完成后,须要将项目打包为docker
镜像。
docker build -f /路径/Dockerfile . # 个人具体路径 # docker build -f /Users/wangyupeng/IdeaProjects/springboot-docker/Dockerfile .
细心的小伙伴可能发现这一行的命令后面有一个
.
,那么这个点是什么呢?它是上下文路径,是指 docker 在构建镜像,有时候想要使用到本机的文件(好比复制),docker build 命令得知这个路径后,会将路径下的全部内容打包。全部咱们在构建镜像的时候上下文路径不要放其余无用的文件。
执行完构建命令后,控制台输出以下日志表示构建成功,而且docker
会给镜像分配一个ID
这时执行以下命令查看是否有咱们的镜像产生
docker images
小伙伴们能够看到,镜像已经构建完成了,可是镜像的
REPOSITORY
和TAG
是空的,那么咱们须要在执行一条命令来指定这个俩个属性
执行以下命令指定镜像的REPOSITORY
和TAG
docker build -t springboot-docker/springboot-docker:1.0 .
再次执行docker images
,能够看到这时的镜像已经完整的呈如今你的面前
镜像已经构建完成了,咱们须要将它运行起来,验证正确性,执行以下命令,命令中的具体参数,做者就不一一介绍了 这篇文章有介绍
docker run -d -p8080:8080 springboot-docker/springboot-docker:1.0 # 或者 docker run -d -p8080:8080 8bf227f4fed9
首先执行以下命令,查看执行的docker
容器
docker ps
这是咱们就可以看到docker
容器的ID
,执行以下命令,查看执行日志
docker logs
在浏览器输入http://localhost:8080/docker
,若是浏览器页面返回的内容是DockerFile
,表示项目的镜像运行正常
好啦,小伙伴们,咱们介绍了,什么是Dockerfile
以及如何将本身的项目构建为docker
镜像,但愿对你有所帮助。案例已分享到本人的GitHub
GitHub