Docker DockerFile文件指令 & 构建
1.dockerfile指令格式
# Comment注释INSTRUCTION argument指令名 + 参数
2.普通指令
1. FROM
已存在的镜像,基础镜像,第一条非注释指令
FROM <image>
FROM <image>:<tag>
2. MAINTAINER
镜像作者信息、联系信息
与dockercommit -a类似
MAINTAINER <name>
3. RUN
指定当前镜像中运行的命令
每一个RUN指令都毁在当层镜像的上层创建一个新的镜像
RUN <command> shell模式
默认/bin/sh -c command
RUN ["executable","param1","param2"] exec模式
指定其他shell:
RUN["/bin/bash","-c","echo hello"]
docker 构建过程:
docker build -t="NAME" -t 指定镜像名
4. EXPOSE
指定运行该容器使用的端口
EXPOSE <port>[<port>...]
出于安全考虑,使用中仍需用 -p <port>命令指定
3. CMD ENTERYPOINT 容器运行时运行的命令
1. CMD
CMD ["executable","param1","param2"] exec模式
CMD <command> shell模式
与RUN区别:RUN是在容器构建是运行,CMD是在容器运行时运行。在docker run中指定命令,会覆盖CMD命令,即CMD是默认命令。
CMD ["param1","param2"] 做为ENTRYPOINT指令的默认参数
2. ENTERYPOINT
CMD ["executable","param1","param2"] exec模式
CMD <command> shell模式
与CMD区别:不会被docker run 中运行的命令覆盖。可以使用
docker run --entrypoint覆盖。entrypoint可与cmd组合:entrypoint指定命令,cmd指定参数。
4. ADD COPY VOLUME 设置镜像目录及文件
1. ADD
包含类似tar的解压功能,安装tar有所帮助
ADD <src>...<dest>
ADD ["<src>"..."<dest>"]适用于文件路径有空格的情况
2. COPY
使用于纯粹复制文件
COPY <src>...<dest>
COPY ["<src>"..."<dest>"]适用于文件路径有空格的情况
3. VOLUME
VOLUME["/data"]
用于创建的容器添加卷,一个卷可以存在一个或多个容器的特定目录,这个目录可以跨过联合文件系统,并提供如共享数据,对数据持久化功能。
5. WORKDIR ENV USER镜像在构建及容器运行时的环境设置
1. WORKDIR
在容器内部设置工作目录
WORKDIR /path/to/workdir
cmd、entrypoint命令都会在这个目录下执行。
一般使用绝对路径,如果用相对路径会一直传递下去。
2. ENV
设置环境变量,在构建过程中和运行中均有效
ENV <key> <value>
ENV <key>=<value>
3. USER
容器以什么用户运行,不指定默认为root
USER daemon
USER uid:gid
USER user:group
6. ONBULID 类似触发器的指令
ONBULID [INSTRUCTION]
为镜像添加触发器,当一个镜像被用作其他镜像的基础镜像时,触发器被执行,当子镜像被构建时,会插入触发器的指令。ONBUILD指令不会在自己构建时运行。
7.构建镜像
默认会使用构建缓存,但是类似于 apt-get update不希望使用缓存,需要加上--no-cache或是在Dockerfile中修改ENV REFRESH_DATE 日期,便会使缓存刷新。
查看构建过程:docker history [image]
在安装nginx的容器中以后台程序运行NGINX:
docker run -d --name nginx -p 80 unbuntufornginx nginx -g "daemon off;"
Docker DockerFile文件指令 & 构建的更多相关文章
- [Linux] 编写Dockerfile文件自动构建镜像
Dockerfile是一个文本文件,按顺序包含构建给定镜像所需的所有命令Docker通过读取Dockerfile中的指令自动构建图像 . Dockerfile遵循特定的格式和指令集,您可以在Docke ...
- Docker | dockerfile 文件编写
dockerfile 的作用 dockerfile 作用就是制作镜像,保持开发,测试,生产环境的一致性. 直接将容器制作为镜像 制作新的镜像 # 把容器按照自己的需求个性完之后,就可以创建自己的镜像的 ...
- docker Dockerfile文件的编写部分命令
镜像的构建过程:编写dockerfile文件,执行docker build 进行构建镜像,最后docker run 运行容器镜像实例. docker build -t mycentos:1.01 . ...
- 从零开始构建一个centos+jdk7+tomcat7的docker镜像文件
从零开始构建一个centos+jdk7+tomcat7的镜像文件 centos7系统下docker运行环境的搭建 准备centos基础镜像 docker pull centos 或者直接下载我准备好的 ...
- Docker教程:镜像构建和自动镜像构建dockerfile
http://blog.csdn.net/pipisorry/article/details/50805379 Docker透过Dockerfile来记录建立Container映象文件的每一个步骤,可 ...
- Docker Dockerfile指令
Docker 可以通过 Dockerfile 的内容来自动构建镜像.Dockerfile 是一个包含创建镜像所有命令的文本文件,通过docker build命令可以根据 Dockerfile 的内容构 ...
- docker Dockerfile指令ADD和COPY的区别,添加目录方法
docker Dockerfile指令ADD和COPY的区别,添加目录方法 ADD指令的功能是将主机构建环境(上下文)目录中的文件和目录.以及一个URL标记的文件 拷贝到镜像中.其格式是: ADD 源 ...
- Docker(十)-Docker创建DockerFile文件
制作Docker image 有两种方式: 使用 Docker container,直接构建容器,再导出成 image 使用. 是使用 Dockerfile,将所有动作写在文件中,再 build 成 ...
- 使用Dockerfile文件构建基于centOS系统的tomcat镜像
以下是Dockerfile的内容: #基础镜像 FROM centos #维护人员信息 MAINTAINER weigs "weigs1231@gmail.com" #设置工作目录 ...
随机推荐
- Python随笔---return与print,全局变量与局部变量
Return是指返回一个数值,一般在函数中应用较多 Print则是指把结果打印出来,显示在屏幕上 def sum(a,b): total=a+b print('函数内:',total) return ...
- poj3728The merchant树剖+线段树
如果直接在一条直线上,那么就建线段树 考虑每一个区间维护最小值和最大值和答案,就符合了合并的条件,一个log轻松做 那么在树上只要套一个树剖就搞定了,多一个log也不是问题 注意考虑在树上的话每一条链 ...
- Core 事件总
NET Core 事件总线,分布式事务解决方案:CAP 背景 相信前面几篇关于微服务的文章也介绍了那么多了,在构建微服务的过程中确实需要这么一个东西,即便不是在构建微服务,那么在构建分布式应用的过程中 ...
- [HNOI 2012]三角形覆盖问题
Description 二维平面中,给定 N个等腰直角三角形(每个三角形的两条直角边分别 平行于坐标轴,斜边从左上到右下).我们用三个非负整数( x, y, d)来描 述这样一个三角形 ...
- JavaScript 事件对象event
什么是事件对象? 比如当用户单击某个元素的时候,我们给这个元素注册的事件就会触发,该事件的本质就是一个函数,而该函数的形参接收一个event对象. 注:事件通常与函数结合使用,函数不会在事件发生前被执 ...
- arcgis jsapi接口入门系列(9):可以同时显示多个的地图popup
jsapi有提供popup功能,但缺点很多,例如地图上只能同时显示一个popup,popup内容有限制等 本文提供另一个方法,原理不用jsapi,在地图外用一个普通的div放在地图上面,再监听地图的鼠 ...
- 干货|java缓存技术详解
一.缓存是什么? 请点击此处输入图片描述 Cache ①高速缓冲存储器,其中复制了频繁使用的数据以利于快速访问. ②位于速度相差较大的两种硬件/软件之间,用于协调两者数据传输速度差异的结构 二.缓存有 ...
- java object默认的基本方法
java object默认的基本方法中没有copy(),含有如下9个方法: getClass(), hashCode(), equals(), clone(), toString(), notify ...
- Spring.Net 能为我们做点什么
本文内容 概述 背景 模块 使用场景 入门应用 Spring.NET 相关项目 本文正式开始前,我以目前所能想到的.此时此刻能想到的,先简单说下,为什么会有像 Spring.Net 这样的东西.首先, ...
- 发现知乎的一个Bug,并且我绕过了此Bug,沾沾自喜中...
发现问题 在知乎点击修改头像,上传图片时发现一片空白.凭着程序员的直觉,第一反应时看下控制台是否有报错.果然发现如下: Refused to load the image 'data:image/jp ...