手把手带你构建dockers镜像
目录
前言
一、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镜像相关推荐
- 01 手把手带你构建大规模分布式服务--高并发、高可用架构系列,高质量原创好文!...
作者:丁浪,目前在创业公司担任高级技术架构师.曾就职于阿里巴巴大文娱和蚂蚁金服.具有丰富的稳定性保障,全链路性能优化的经验.架构师社区特邀嘉宾! 阅读本(系列)文章,你将会收获: 全面.体系化的了解大 ...
- 手把手带你玩转Spark机器学习-使用Spark构建回归模型
系列文章目录 手把手带你玩转Spark机器学习-专栏介绍 手把手带你玩转Spark机器学习-问题汇总 手把手带你玩转Spark机器学习-Spark的安装及使用 手把手带你玩转Spark机器学习-使用S ...
- 算法竞赛五冠五亚得主,手把手带你了解算法竞赛
大家好,我是王贺(鱼遇雨欲语与余),一个工作两年的推荐广告算法工程师,热爱算法竞赛.今天跟大家聊聊我的新书<机器学习算法竞赛实战>,以及我的竞赛经历.明天晚上的直播我会以天池平台开放的二手 ...
- Docker构建YApi镜像, Docker安装YApi, Docker部署YApi
目录 概述 基本环境 docker网络 安装MongoDb 构建YAPI镜像 运行YAPI Nginx反向代理 挂域名 概述 YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测 ...
- Android:手把手带你深入剖析 Retrofit 2.0 源码
前言 在Andrroid开发中,网络请求十分常用 而在Android网络请求库中,Retrofit是当下最热的一个网络请求库 今天,我将手把手带你深入剖析Retrofit v2.0的源码,希望你们会喜 ...
- 【NLP傻瓜式教程】手把手带你RCNN文本分类(附代码)
继续之前的文本分类系列 [NLP傻瓜式教程]手把手带你CNN文本分类(附代码) [NLP傻瓜式教程]手把手带你RNN文本分类(附代码) [NLP傻瓜式教程]手把手带你fastText文本分类(附代码) ...
- 【NLP傻瓜式教程】手把手带你fastText文本分类(附代码)
写在前面 已经发布: [NLP傻瓜式教程]手把手带你CNN文本分类(附代码) [NLP傻瓜式教程]手把手带你RNN文本分类(附代码) 继续NLP傻瓜式教程系列,今天的教程是基于FAIR的Bag of ...
- 构建Docker镜像指南,含实战案例
[Docker那些事]系列文章 Dockerfile 文件结构.docker镜像构建过程详细介绍 Dockerfile文件中CMD指令与ENTRYPOINT指令的区别 构建Docker镜像指南,含实战 ...
- 手把手带你阅读Mybatis源码(三)缓存篇
点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 前言 大家好,这一篇文章是MyBatis系列的最后一篇文章,前面两篇文章:手把手带你阅读M ...
最新文章
- 干货|知道Excel这9个小技巧,不做二傻子!
- rabbitmq 延迟队列_框架系列|中间件RabbitMQ必看17道面试题
- 开源方案搭建可离线的精美矢量切片地图服务-1.开篇(附成果演示地址)
- Apple 预计于内华达州雷诺市再盖一个数据中心
- Java随机生成长宽的矩形_java – 将正方形或矩形分解为大量随机大小的正方形或矩形...
- java 类 加载 初始化_java类的加载与初始化
- asp无组件上传图片 动态保存文件名 upload.inc逐句翻译
- POJ 1065 Wooden Sticks(LIS,最少链划分)
- php 获取小数精度,php小数精度问题
- 网页内嵌多媒体内容的完美实现
- excel宏教程_Excel多功能工具箱(收藏家必备)
- C专家编程--随记(二)
- 我经常登录的GIS专业论坛
- 为所欲为表情包制作器
- 深度学习-训练集图片输入神经网络前的标准化(附代码)
- 微信多媒体文件speex格式转为mp3文件格式
- 联想M7400Pro打印满张纸黑
- 产品数据管理PDM实施技术研究
- 求三角形面积 ← 海伦公式
- Notion——Android版下载与注册登录