`
445822357
  • 浏览: 741240 次
文章分类
社区版块
存档分类
最新评论

docker学习笔记(2)---Dockerfile

阅读更多

在docker学习笔记(1)中,我们提到了通过commit 的命令来提交新的image,下面我们来通过Dockerfile文件来生成image,而且使用Dockerfile,很方便移植。


一、Dockerfile中几个常用的指令:

(1)FROM

格式:

FROM  <image>
或者

 FROM  <image>:<tag>

(2)MAINTAINER

格式:

MAINTAINER  <name>

说明:设置生成image的作者


(3)RUN

格式:

使用shell 的形式

RUN  <command>
或 使用exec的形式

RUN ["executable",  "param1",  "param2"] 

说明:RUN指令会在当前的Image上的新一层layer执行指令,并提交结果。这些结果会在Dockerfile的下一步中使用到。


(4)CMD

格式:

CMD ["executable","param1","param2"]  
CMD ["param1","param2"] 
CMD command param1 param2

说明:CMD指令会在启动container时执行服务,例如一个命令,启动一个服务,或启动一个脚本之类的。

注意:一个Dockerfile文件只能有一个CMD指令,如果有多条,则只有最后一条有效。


(5)ADD

格式:

ADD  <src>  .... <dest>

说明:

如果要ADD本地文件,则本地文件必须在 docker build <PATH>,指定的<PATH>目录下,如:ADD files /root/hadoop_files/(注意,这里hadoop_files后面要有/,否则在build Dockerfile时会失败,提示说: lchown /var/lib/docker/aufs/mnt..........................not a directory之类的报错信息)

如果要ADD远程文件,则远程文件必须在 docker build <PATH>,指定的<PATH>目录下,如:ADD ADD https://archive.apache.org/dist/hadoop/common/hadoop-1.0.4/hadoop-1.0.4-bin.tar.gz /root/


(6)VOLUME

格式:

VOLUME  ["/data"]
说明:可以将本地文件夹或者其他container的文件夹挂载到container中。


二、例子

下面的Dockerfile创建一个基于ubuntu:precise的镜像。

通过docker build -t ubuntu:base . 命令执行。

#Authro:wgc
#Data:2014-10-24
#Introduction:Build basic development
From ubuntu:precise

# Set correct source list
RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list
RUN echo "deb http://archive.ubuntu.com/ubuntu precise-updates main universe" >> /etc/apt/sources.list

# Install a few other useful packages plus Open Jdk 7
RUN apt-get update && apt-get upgrade -y && apt-get install -y openjdk-7-jdk wget vim sudo openssh-server 

# Add hadoop_files
ADD files /root/hadoop_files/

# Set JAVA_HOME
ENV JAVA_HOME /usr/lib/jvm/java-7-openjdk-amd64
RUN echo export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 >> /root/.bashrc

# Download hadoop
ADD https://archive.apache.org/dist/hadoop/common/hadoop-1.0.4/hadoop-1.0.4-bin.tar.gz /root/




参考:

(1)docs.docker.com/reference/builder/

(2)http://blog.csdn.net/wsscy2004/article/details/25878223

(3)tonybai.com/tag/博客/






分享到:
评论

相关推荐

    docker学习笔记.docx

    Docker_容器数据卷用DockerFile添加 Docker_容器数据卷volumes-from DockerFile保留字指令 DockerFile案例-自定义镜像mycentos DockerFile案例-CMD-ENTRYPOINT命令 DockerFile案例-ONBUILD命令 DockerFile案例-...

    docker学习思维笔记.xmind

    docker 介绍 架构 安装 组成 命令 帮助命令 docker version docker info docker --help 镜像命令 docker images ... Dockerfile介绍 是什么 执行流程 关键字 数据卷 容器

    docker学习笔记.zip

    docker学习笔记,内含html版与markdown版,两个版本类型的文件。里面概括性介绍了docker的使用方法,可跟着步骤实际操作。内容主要包括docker常用命令的使用方法,容器数据卷技术做持久化,dockerfile编写,docker...

    Docker入门基础笔记

    本笔记记录入门的Docker学习笔记,通俗易懂,适合没有学过docker的小伙伴作一个参看,码字不易,且看且珍惜 Docker的由来背景 Docker的基本操作 Docker应用 Docker自定义镜像 Docker-Compose Dockerfile文件

    Spring Cloud与Docker整合应用-学习笔记

    这是本人初次接触Spring Cloud微服务及Docker结合的学习点滴,帮助自己或他人更好地去理解微服务概念及其庞大的组件体系,给予服务开发上的便利,同时结合Docker虚拟化技术进行整合应用的实践过程,以作者初学的角度...

    docker-notebook:学习容器技术的笔记本-Docker

    使用Dockerfile构建Docker映像 CI / CD与Docker Docker SDK和API 开源 顶 Docker Container指标的类顶界面 docker run --rm -ti -v /var/run/docker.sock:/var/run/docker.sock \ --name ctop quay.io/vektorlab/...

    DockerElKitabi:我在学习Docker时所做的笔记

    Dockerfile-2 Dockerfile-3 Dockerfile-4 Linux Shell技巧 Dockerfile-5 添加和复制差异 ENTRYPOINT和CMD的区别 执行窗体和外壳窗体的区别 多阶段构建 ARG Docker提交 Docker保存加载 登记处 组合和群聚 Docker...

    Docker学习笔记

    这是一篇关于Docker的学习笔记,覆盖了基础命令,底层原理,Dockerfile,数据卷,Docker网络等

    中文-docker-compose-学习笔记:docker compose learning(Markdown)中文docker-compose学习笔记

    按照做的笔记。 Docker撰写 官方介绍: Compose是用于定义和运行多容器Docker应用程序的工具。 通过Compose,您可以使用YAML文件来配置应用程序的服务。 然后,使用一个命令,就可以从配置中创建并启动所有服务。 ...

    Docker学习笔记七(七)Dockerfile

    首先我们先看一下docker hub上关于Centos的file Dockerfile内容基础知识: 1.每条保留字指令都必须大写字母且后面要跟随至少一个参数 2.指令按照从上到下,顺序执行 3.#表示注释 4.每条指令都会创建一个新的镜像层...

    docker-ocaml-jupyter-datascience:Jupyter上OCaml中用于数据科学的Dockerfile

    (IPython笔记本)和 ( 内核)的即用型环境,带有用于数据科学和机器学习的库。 入门 首先,按以下方式启动Jupyter服务器。 $ docker run -it -p 8888:8888 akabe/ocaml-jupyter-datascience [I 15:38:04.170 ...

    docker教程

    docker教程(非常详细的 Docker 学习笔记 Docker )

    docker基础学习笔记

    包含了docker理论、安装与卸载、dockers网络、容器持久化、Dockerfile编写等内容

    Docker学习笔记之Docker部署Java web系统

    Docker部署Java Web系统  1.在root目录下创建一个路径test/app mkdir test && cd test&& mkdir app &&cd app 2.将apache-tomcat-7.0.29.tar.gz及jdk-7u25-linux-x64.tar.gz拷贝 到app目录下 3.解压两个tar.gz文件 ...

    Docker学习笔记之docker入门

    学习的一些疑问 如何热更新镜像(images)?(你可以快速启动或者销毁容器。这种时间几乎是实时的) 如何热更新游戏服? 好处在于各个应用之间环境相互独立,即使某一个容器崩溃也不会影响到其它容器; 每个容器...

    docker-iocaml-datascience:Jupyter(IPython笔记本)和IOCaml(OCaml内核)的Dockerfile,以及用于数据科学和机器学习的库

    docker-iocaml-datascience:Jupyter(IPython笔记本)和IOCaml(OCaml内核)的Dockerfile,以及用于数据科学和机器学习的库

    详解Docker学习笔记之搭建一个JAVA Tomcat运行环境

    本篇文章主要介绍了详解Docker学习笔记之搭建一个JAVA Tomcat运行环境,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    动力节点Docker入门到进阶教程学习笔记分享

    2.通过实例全面讲解了Dockerfile指令 3.深度解析了build cache机制、网络通信过程与通信原理。 4.全面且讲解了目前最流行的三种Docker管理平台及CIG监控平台的搭建、配置及使用。 5.深度讲解了docker distribution、...

    docker学习笔记之把容器commit成镜像的方法

    2.通过Dockerfile来制作镜像 下面通过一个例子来展示方法 本地有一个Ubuntu的镜像,下面以这个为蓝本,创建一个容器并在根目录下添加一个test文件,然后做成镜像。 [root@bw001 ~]# docker images REPOSITORY TAG ...

    spark-jupyter-docker:轻松设置带有PySpark集群的Jupyter Notebook游乐场

    scikit学习 matplotlib 张量流 张量流公园 您可以通过编辑./jupyter/Dockerfile添加其他模块。 开始吧 您只需命令: $ mkdir data $ docker-compose up -d 该命令开始: 1个Spark Master 2火花工人 1个Jupyter...

Global site tag (gtag.js) - Google Analytics