dockerfile就是一个命令脚本,用来构建docker镜像的

1.dockerfile命令

dockerfile中的命令都建议大写,是为了和参数区分开来

  1. FROM命令

FROM命令指定镜像的基础镜像。比如我们要定制一个tomcat镜像,那么tomcat就是我们的基础镜像。又比如我们要制作一个我们自己的springboot服务镜像,那么java就是基础镜像。

FROM 基础镜像

eg:

FROM java:8

如果本地没有,docker会自动下载java8镜像

  1. RUN命令

指定镜像构建过程中要执行的命令。其有shell格式和exec格式

shell格式

RUN <命令行命令>
# <命令行命令> 等同于,在终端操作的 shell 命令。

eg:

#输出 this a run command
RUN echo "this a run command"

exec格式

RUN ["可执行文件", "参数1", "参数2"]
# 例如:
# RUN ["./test.php", "dev", "offline"] 等价于 RUN ./test.php dev offline

3.COPY指令
复制指令,从上下文目录中复制文件或者目录到容器里指定路径。
比如我们要构建一个springboot镜像就需要把宿主机中的jar包拷贝到容器中。容器的目录结构就是简化版的linux文件目录

COPY xxx.jar /home/hxl
  1. ADD命令

其作用和copy一样,把上下文的文件复制到容器中。不同的是,ADD命令复制压缩文件时,会把文件自动解压到容器目录中

ADD xxx.zip /usr/local
  1. CMD命令

运行程序时执行,其与RUN命令类似,不过RUN是在构建镜像时执行,而CMD是在运行镜像时执行。
比如我们的springboot镜像在启动时需要启动jar包,那么就可以把java -jar命令用在这里

注意:如果 Dockerfile 中如果存在多个 CMD 指令,仅最后一个生效

CMD java -jar xxxx.jar
  1. ENTRYPOINT命令
ENTRYPOINT ["java","- jar","xxx.jar"]
  1. ENV命令

设置环境变量,定义了环境变量,那么在后续的指令中,就可以使用这个环境变量。

ENV JAVA_HOME /user/local/jdk1.8#输出 /user/local/jdk1.8
RUN echo $JAVA_HOME
  1. ARG命令
  2. VOLUME命令

挂载数据卷

VOLUME ["user/local/nginx"]
  1. WORKDIR命令
    指定工作目录,我们的命令就在这个目录下执行,
  2. EXPOSE命令

实战构建springboot镜像

1.在idea中安装docker插件,并且在项目目录下创建Dockerfile文件就能愉快的编写命令

FROM java:8RUN echo "start build ng-eureka-server"COPY *.jar /app.jarCMD ["--server.port=8091"]EXPOSE 8091ENTRYPOINT ["java","-jar","/app.jar"]RUN echo "==========end==========="

2.把jar包和Dockerfile都上传到目录

3.使用docker build命令构建镜像

docker build -t ng-eureka:1.0 .


可以看到镜像已经生成成功了

4.运行镜像

docker run -d -p 8010:8091 --name ng-server ng-eureka:1.0


访问测试成功

DockerFile---构建docker镜像的文件相关推荐

  1. 通过Dockerfile构建Docker镜像

    Dockerfile是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建. Dockerfile支持Shell类的行尾添 ...

  2. 使用Dockerfile构建Docker镜像

    目录 前言 Dockerfile的书写规则及指令使用方法 创建Dockerfile,构建运行环境 构建镜像 Dockerfile参考示例 Dockerfile最佳实践 1. 前言 Dockfile是一 ...

  3. Dockerfile构建docker镜像注意事项

    注意:Dockerfile 的指令每执行一次都会在 docker 上新建一层.所以过多无意义的层,会造成镜像膨胀过大.例如: FROM centos RUN yum install wget RUN ...

  4. jar构建docker镜像_dockerfile构建docker镜像详细说明,主要是springboot的jar包构建镜像样例...

    dockerfile构建docker镜像详细说明,主要是springboot的jar包构建镜像样例 1.镜像构建命令:docker build 图解 启动命令:(注意最后面有一个点,不要忘记) doc ...

  5. Docker 使用Dockerfile构建Docker(三)

    Dockerfile 简单使用 先来编写一个最简单的 Dockerfile. 例如: FROM nginx RUN echo '<h1>使用Dockerfile构建镜像</h1> ...

  6. docker 运行jar exit_使用Dockerfile为SpringBoot应用构建Docker镜像

    上次写过一篇使用Maven插件构建Docker镜像 ,讲述了通过docker-maven-plugin来构建docker镜像的方式,此种方式需要依赖自建的Registry镜像仓库.本文将讲述另一种方式 ...

  7. 使用Dockerfile为SpringBoot应用构建Docker镜像

    使用Dockerfile为SpringBoot应用构建Docker镜像 原创: 梦想de星空 macrozheng 6月17日 上次写过一篇使用Maven插件构建Docker镜像 ,讲述了通过dock ...

  8. Docker使用Dockerfile构建简单镜像

    Docker使用Dockerfile构建简单镜像 首先确保系统已经安装docker 构建镜像 安装基础镜像 sudo docker pull ubuntu 查看镜像是否已经拉取成功 REPOSITOR ...

  9. 打包应用和构建Docker镜像(docker在windows上)

    在构建Docker时编译应用 一般有两种方法在构建镜像时进行打包应用.第一种方法就是使用基本的镜像,该镜像包括应用平台和构建工具,因此在Dockerfile中,复制源代码到镜像中并在构建镜像时编译ap ...

  10. Spring Boot 2.3.x 分层构建 Docker 镜像实战

    目录 一.什么是镜像分层 二.SpringBoot 2.3.x 新增对分层的支持 三.创建测试的 SpringBoot 应用 1.Maven 中引入相关依赖和插件 2.创建测试的 Controller ...

最新文章

  1. Android--加载大分辨率图片到内存
  2. apache php 单入口,apache配置php实现单一入口方法
  3. 常用机器学习算法汇总比较(完)
  4. .net core学习
  5. (王道408考研操作系统)第四章文件管理-第一节9:文件系统的层次结构
  6. 显示菜单栏_mac菜单栏不显示了,如何设置?
  7. MVC中使用Tuple完成匿名类数据存储
  8. threejs 热力图做成材质_脉冲滤筒除尘器滤芯的材质
  9. GPU架构变迁之AI系统视角:从费米到安培
  10. win10计算器_喜欢 Win10 计算器?现在各个平台都能拥有!
  11. 清除恶意主页www.7939.com
  12. 设置网站 titile keyword 以及 descript
  13. 如何激发员工的积极性
  14. RTOS内功修炼记(二)—— 优先级抢占调度到底是怎么回事?
  15. Java获取今天是几号
  16. 【ZZULIOJ】1012: 求绝对值
  17. JavaScript DOM高级程序设计
  18. 批量转txt文本编码,由utf-8转为ANSI(ASCII)
  19. ASP.NET—016:ASP.NET中保存文件对话框
  20. Vue 通过url下载文件并修改文件名称

热门文章

  1. 春季出游,学会这些功能,让你旅途更舒心
  2. 调用对象 “ha-datastoresystem”的“HostDatastoreSystem.QueryVmfsDatastoreCreateOptions” 失败。...
  3. 如何用PDF编辑器修改PDF中的内容?附上操作教程
  4. virgo server使用指南
  5. C语言连续定义多个指针变量
  6. 【Java编程指南】语法基础
  7. 汽车CAN总线硬件电路原理
  8. 中国营销新闻网新闻发布
  9. CUBEIDE STM32 HardFault分析
  10. 常见web安全隐患及解决方案