网站首页 > 技术文章 正文
Dockerfile 介绍
什么是Dockerfile
Dockerfile是一个用来将你的应用构建为docker镜像的文本文件,文本中的内容是一条一条的指令,这些指令的集合在docker引擎中执行,最终构建出你的应用的docker镜像。
准备
需要小伙伴们先在本地或者服务器上安装docker
docker安装看这篇就够了
命令介绍
先来看一个简单的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"]
FROM :需要构建镜像的项目所需要依赖的基础镜像,SpringBoot项目是跑在JDK之上的
VOLUME :定义匿名数据卷,容器在运行的时候,会将数据写入到这个数据卷中,这里设置为一个临时目录
ADD :将target目录下的springboot-docker-0.0.1-SNAPSHOT.jar包添加到docker容器中,并将名称进行修改为docker.jar
RUN :执行后其后面的命令
ENTRYPOINT;在容器启动之前的预定义执行脚本命令
创建项目
下面我们,创建一个简单的SpringBoot项目来验证一下我们上文所说的。
加入依赖
打开的你的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文件
在你的项目根目录创建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
猜你喜欢
- 2024-09-27 【容器篇】认识Dockerfile dockerfile示例
- 2024-09-27 Dockerfile常用指令大全及详解 dockerfile中最常见的指令是什么
- 2024-09-27 阿里云Docker/Kubernetes(K8S) 日志解决方案与选型对比
- 2024-09-27 Docker 镜像构建之 Dockerfile docker镜像在哪个文件夹
- 2024-09-27 docker进击之Dockerfile最佳实践 dockersfile
- 2024-09-27 Dockerfile简单使用 dockerfile示例
- 2024-09-27 DockerFile文件详解 dockerfile文件详解java
- 2024-09-27 Docker实战九之Docker Dockerfile
- 2024-09-27 Docker篇(三):Dockerfile实战开启
- 2024-09-27 DockerFile 命令总结 dockerfile sh
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)