目录

前言

一、Dockerfile文件

二、跟做先构建个简单的镜像感受一下

1. 将需要的用到的资源(jdk-8u211-linux-x64.tar.gz)准备好,创建一个文本文件名称为Dockerfile(命令:touch Dockerfile)

2.vi命令编辑Dockerfile ,粘贴下面内容

3.使用 Dockerfile 构建名为my-jdk:8的镜像(在Dockerfile所在目录执行)

4.镜像的导出与导入

三、Dockerfile文件指令

FROM

MAINTAINER

RUN

COPY

ADD

CMD

ENV

VOLUME

四、注意事项


前言

如果您对dockers基础不熟悉,可以先跟着(docker安装及应用)这篇文章。

一、Dockerfile文件

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

二、跟做先构建个简单的镜像感受一下

1. 将需要的用到的资源(jdk-8u211-linux-x64.tar.gz)准备好,创建一个文本文件名称为Dockerfile(命令:touch Dockerfile)

2.vi命令编辑Dockerfile ,粘贴下面内容

FROM centosMAINTAINER zengLingYaoRUN mkdir /usr/local/javaADD jdk-8u211-linux-x64.tar.gz /usr/local/java/RUN ln -s /usr/local/java/jdk1.8.0_211 /usr/local/java/jdkENV JAVA_HOME /usr/local/java/jdk
ENV JRE_HOME ${JAVA_HOME}/jre
ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib
ENV PATH ${JAVA_HOME}/bin:$PATH

3.使用 Dockerfile 构建名为my-jdk:8的镜像(在Dockerfile所在目录执行)

docker build -t my-jdk:8 .

生成镜像后我们可以通过docker images命令看到自己构建的镜像

4.镜像的导出与导入

导出命令:docker save  my-jdk:8 | gzip > my-jdk:8.tar.gz

导入命令:docker load < my-jdk:8.tar.gz

三、Dockerfile文件指令

FROM

FROM用于指定基础镜像,且必须为第一个命令

例1:FROM centos              最新版本

例2:FROM centos:7        指定版本

MAINTAINER

Dockerfile作者信息,一般写的是联系方式

例:MAINTAINER   3198215426@qq.com

RUN

用于执行后面跟着Linux系统命令的命令

例:RUN yum -y install wget

COPY

从上下文目录中复制文件或者目录到容器里指定的绝对路径

例: COPY test /user/local/docker

ADD

对压缩文件进行解压缩;将数据移动到指定的目录

例: ADD jdk-8u211-linux-x64.tar.gz /user/local/docker

CMD

在docker run 时运行

例:CMD ["/bin/echo", "this is a echo test"]

ENV

环境变量

例1:ENV <key> <value>

例2:ENV <key1>=<value1> <key2>=<value2>...

VOLUME

定义匿名数据卷。在启动容器时忘记挂载数据卷,会自动挂载到匿名卷。

例1:VOLUME ["/data",...]

例2:VOLUME /data

四、注意事项

Dockerfile 的指令每执行一次都会在 docker 上新建一层。

FROM centos
RUN yum -y install wget
RUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz"
RUN tar -xvf redis.tar.gz#会建3层镜像应改为下面写法只建1层FROM centos
RUN yum -y install wget \&& wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz" \&& tar -xvf redis.tar.gz

使用ADD/COPY命令,资源文件必须和Dockfile位于同一目录下

手把手带你构建dockers镜像相关推荐

  1. 01 手把手带你构建大规模分布式服务--高并发、高可用架构系列,高质量原创好文!...

    作者:丁浪,目前在创业公司担任高级技术架构师.曾就职于阿里巴巴大文娱和蚂蚁金服.具有丰富的稳定性保障,全链路性能优化的经验.架构师社区特邀嘉宾! 阅读本(系列)文章,你将会收获: 全面.体系化的了解大 ...

  2. 手把手带你玩转Spark机器学习-使用Spark构建回归模型

    系列文章目录 手把手带你玩转Spark机器学习-专栏介绍 手把手带你玩转Spark机器学习-问题汇总 手把手带你玩转Spark机器学习-Spark的安装及使用 手把手带你玩转Spark机器学习-使用S ...

  3. 算法竞赛五冠五亚得主,手把手带你了解算法竞赛

    大家好,我是王贺(鱼遇雨欲语与余),一个工作两年的推荐广告算法工程师,热爱算法竞赛.今天跟大家聊聊我的新书<机器学习算法竞赛实战>,以及我的竞赛经历.明天晚上的直播我会以天池平台开放的二手 ...

  4. Docker构建YApi镜像, Docker安装YApi, Docker部署YApi

    目录 概述 基本环境 docker网络 安装MongoDb 构建YAPI镜像 运行YAPI Nginx反向代理 挂域名 概述 YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测 ...

  5. Android:手把手带你深入剖析 Retrofit 2.0 源码

    前言 在Andrroid开发中,网络请求十分常用 而在Android网络请求库中,Retrofit是当下最热的一个网络请求库 今天,我将手把手带你深入剖析Retrofit v2.0的源码,希望你们会喜 ...

  6. 【NLP傻瓜式教程】手把手带你RCNN文本分类(附代码)

    继续之前的文本分类系列 [NLP傻瓜式教程]手把手带你CNN文本分类(附代码) [NLP傻瓜式教程]手把手带你RNN文本分类(附代码) [NLP傻瓜式教程]手把手带你fastText文本分类(附代码) ...

  7. 【NLP傻瓜式教程】手把手带你fastText文本分类(附代码)

    写在前面 已经发布: [NLP傻瓜式教程]手把手带你CNN文本分类(附代码) [NLP傻瓜式教程]手把手带你RNN文本分类(附代码) 继续NLP傻瓜式教程系列,今天的教程是基于FAIR的Bag of ...

  8. 构建Docker镜像指南,含实战案例

    [Docker那些事]系列文章 Dockerfile 文件结构.docker镜像构建过程详细介绍 Dockerfile文件中CMD指令与ENTRYPOINT指令的区别 构建Docker镜像指南,含实战 ...

  9. 手把手带你阅读Mybatis源码(三)缓存篇

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 前言 大家好,这一篇文章是MyBatis系列的最后一篇文章,前面两篇文章:手把手带你阅读M ...

最新文章

  1. 干货|知道Excel这9个小技巧,不做二傻子!
  2. rabbitmq 延迟队列_框架系列|中间件RabbitMQ必看17道面试题
  3. 开源方案搭建可离线的精美矢量切片地图服务-1.开篇(附成果演示地址)
  4. Apple 预计于内华达州雷诺市再盖一个数据中心
  5. Java随机生成长宽的矩形_java – 将正方形或矩形分解为大量随机大小的正方形或矩形...
  6. java 类 加载 初始化_java类的加载与初始化
  7. asp无组件上传图片 动态保存文件名 upload.inc逐句翻译
  8. POJ 1065 Wooden Sticks(LIS,最少链划分)
  9. php 获取小数精度,php小数精度问题
  10. 网页内嵌多媒体内容的完美实现
  11. excel宏教程_Excel多功能工具箱(收藏家必备)
  12. C专家编程--随记(二)
  13. 我经常登录的GIS专业论坛
  14. 为所欲为表情包制作器
  15. 深度学习-训练集图片输入神经网络前的标准化(附代码)
  16. 微信多媒体文件speex格式转为mp3文件格式
  17. 联想M7400Pro打印满张纸黑
  18. 产品数据管理PDM实施技术研究
  19. 求三角形面积 ← 海伦公式
  20. Notion——Android版下载与注册登录

热门文章

  1. MJ对2008年10月6日大盘预测(节后第一天)
  2. CodeForces 1000A Codehorses T-shirts
  3. 图像分割——Multi-Scale and Pyramid Network Based Models( PSPN)理解和代码分析
  4. Linux进阶_PAM认证机制
  5. 刚刚随便GOOGLE和BAIDU了下PIPO和BLOG
  6. J0ker的CISSP之路:What's CISSP
  7. Flask开发微电影网站(一)
  8. 札记-20190531
  9. UTF-8和UTF-16简介
  10. keyboard speed