docker基础——5.Dockerfile
把应用部署在容器中,改变了用文本文件保存配置信息的方式。而通过传环境变量配置。
Dockerfile是一个文本文件,包括容器的指令。按顺序从上到下执行,第一行非注释指令必须是FROM指定基础镜像。
Dockerfile的工作逻辑:
(1)在一个专用目录放入Dockerfile文件,首字母大写。
(2)Dockerfile引用的文件都在工作目录下,.dockeringore文件中标明的文件在打包时会被排除。
(3)docker build命令把Dockerfile引用的工作目录传入Docker daemon,然后开始按照Dockerfile中的内容构造镜像。
(4)Dockerfile中的每一条指令都会生出一个新的镜像层,最终的镜像就是基础镜像上叠加一层层的镜像层组建的。
指令:
(1)FROM
Dockerfile第一个非注释行,用于指定基准镜像。
格式:
FROM <reposotiry>[:<tag>]
FROM <reposotiry>@<digest>
可以用标签或Hash码标识镜像
(2) LABEL
用键值格式表示各种元数据
格式:
LABEL <key> = <value> <key> = <value> ...
例:LABEL autor="ss" time="20190312"
(3) COPY
用于从主机复制文件至创建的新映像文件
格式:
COPY <src> <dest>
<src>:要复制的源文件或目录,支持通配符。
<dest>:目标路径,建议使用绝对路径。
说明:
a.<src>为目录时,则会递归复制,但<src>目录本身不会被复制;
b.指定多个<src>,或在<src>中使用通配符,则<dest>必须是目录,以/结尾;
c.<dest>事先不存在,将被自动创建。
(4) ADD
ADD指令类似于COPY指令。ADD支持使用TAR文件和URL路径。
格式:
ADD <src> <dest>
说明:
a.同COPY指令
b.如果<src>是一个本地系统上的tar文件,它将被展开为一个目录,类似于tar -x。而通过URL获取到的tar文件不会展开。
c.如果<src>是多个或使用了通配符,则<dest>必须是/结尾的目录路径,否则<src>的内容将被直接写到<dest>
(5) WORKDIR
用于为Dockerfile中各种指令设定工作目录
例如:
WORKDIR /usr/local
ADD tmp.tar.gz ./src/
(6) VOLUME
用于在image中创建一个挂载点目录,以挂载Docker host上的卷或其他容器上的卷。
格式:
VOLUME <mountpoint>
(7) EXPOSE
用于为容器打开指定要监听的端口
例如:EXPOSE 11211/udp 11211/tcp
配合docker run -P命令使用
(8) ENV
用于为镜像定义所需的环境变量,并可被Dockerfile文件中位于其后的其他指令所调用。
调用格式:$var 或 ${var}
定义格式:
ENV <key> <value>
ENV <key>=<value> ...
(9) RUN
针对于FROM的基础镜像,在docker build阶段执行。
格式:
RUN <command>
RUN ["<executable>", "<param1>", "<param2>"]
注意:
第一种方式,命令通过/bin/sh -c运行;
第二种格式,命令直接运行,不调用shell,该格式被docker当成json数组解析,所以必须用双引号。
(10) CMD
CMD在docker run启动容器时运行。
多个CMD,只执行最后一个。
格式:
CMD <command>
CMD ["<executable>", "<param1>", "<param2>"]
CMD ["<param1>", "<param2>"]
(11) ENTRYPOINT
与CMD类似,但在docker run时参数不会覆盖ENTRYPOINT,而是作为ENTRYPOINT的参数。
CMD与ENTRYPOINT同时存在,CMD作为ENTRYPOINT的参数。
(12) USER
USER <UID>|<UserName>
<UID>必须为/etc/passwd中有效的UID
(13) HEALTHCHECK
健康检查
(14) SHELL
指定shell
默认
linux:["/bin/sh", "-c"]
win:["cmd", "/s", "/c"]
(15) STOPSIGNAL
更改stop的信号,默认是15
(16) ARG
在docker build时传参数。
(17) ONBUILD
用于在Dockerfile中定义一个触发器,在别人用该镜像作为基础镜像是使用。
docker基础——5.Dockerfile的更多相关文章
- [转]Docker基础-使用Dockerfile创建镜像
本文转自:https://www.cnblogs.com/jie-fang/p/7927643.html 1.基本结构 Dockerfile由一行行命令语句组成,并支持以#开头的注释行.例如: # T ...
- Docker基础-使用Dockerfile创建镜像
1.基本结构 Dockerfile由一行行命令语句组成,并支持以#开头的注释行.例如: # This dockerfile uses the ubuntu image # VERSION 2 - ED ...
- docker基础:dockerfile的介绍
Dockerfile 是一个文本格式的配置文件,用户可以使用 Dockerfile 快速创建自定义的镜像.我们会先介绍 Dockerfile 的基本结构及其支持的众多指令,并具体讲解通过执行指令来编写 ...
- (转)Docker 基础 : Dockerfile
全文来自 Docker 基础 : Dockerfile Dockerfile 是一个文本格式的配置文件,用户可以使用 Dockerfile 快速创建自定义的镜像.我们会先介绍 Dockerfile 的 ...
- Docker - Docker基础命令及使用
Docker Docker - 官网 Docker - Hub GitHub - Docker Docker中文社区 Docker基础命令 Docker 查看帮助信息:docker --help 查看 ...
- Docker基础入门及示例
Docker近几年的发展可谓一日千里,特别从是2013年随着一个基于LXC的高级容器引擎开源,到现在,其在linux和windows上都有了很好的支持,并且已经有很多公司将docker用于实际的生产环 ...
- Docker(二):Dockerfile 使用介绍
上一篇文章Docker(一):Docker入门教程介绍了 Docker 基本概念,其中镜像.容器和 Dockerfile .我们使用 Dockerfile 定义镜像,依赖镜像来运行容器,因此 Dock ...
- Docker 基础 : 镜像
目录 获取镜像 查看镜像信息 搜索镜像 删除镜像 创建镜像 导出和导入镜像 上传镜像 总结 镜像是 Docker 的三大核心概念之一.Docker 运行容器前需要本地存在对应的镜像,如果本地没有对应的 ...
- Docker系列03—Docker 基础入门
本文收录在容器技术学习系列文章总目录 1.概念介绍 1.1 容器 1.1.1 介绍 容纳其它物品的工具,可以部分或完全封闭,被用于容纳.储存.运输物品.物体可以被放置在容器中,而容器则可以保护内容物. ...
随机推荐
- 【SpringBoot】No 'Access-Control-Allow-Origin' header is present on the requested resource.
关键字:跨域,Access-Control-Allow-Origin,转码,解码 在做一个前后端分离项目,本来前端项目都可以正常访问后端接口,跨域是这么设置的,接口可以正常访问 @Configurat ...
- MySQL数据库常用命令汇总
-- 查看mysql的当前登陆用户 select user(); -- 列出数据库 show databases; -- 使用数据库 use mysql; describe mysql.user; s ...
- Swoole 进程管理模块 Process 之单进程的使用
PHP 自带的 pcntl,存在很多不足,如: 没有提供进程间通信的功能: 不支持重定向标准输入和输出: 只提供了 fork 这样原始的接口,容易使用错误: Swoole\Process 提供了如下特 ...
- JMeter_jmeter-plugins插件的安装使用
一.安装JMter Plugins 1.官网下载 JMeter Plugins 的jar包 2. 将下载的jar包复制到 %JMETER_HOME%\lib\ext 目录下 3. 启动 JMeter ...
- js 调用同级的 iframe 方法
有两个 iframe <iframe id="a"> <script> function food(a){ return a+1; } </scrip ...
- CentOS7中安装pip的方法
1.安装epel-release [root@localhost ~]# yum -y install epel-release 2.安装python-pip [root@localhost ~]# ...
- Git 的配置 config
Git 的配置 config Git 的配置 config config 文件简述 config 文件位置 信息查询 修改 config 文件 编辑配置文件 增加指定配置项 删除指定配置项 自助餐 ...
- Numpy实现简单BP神经网络识别手写数字
本文将用Numpy实现简单BP神经网络完成对手写数字图片的识别,数据集为42000张带标签的28x28像素手写数字图像.在计算机完成对手写数字图片的识别过程中,代表图片的28x28=764个像素的特征 ...
- 《剑指offer》面试题51. 数组中的逆序对
问题描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数. 示例 1: 输入: [7,5,6,4] 输出: 5 限制: ...
- Cesium入门3 - Cesium目录框架结构
Cesium入门3 - Cesium目录框架结构 Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ app目录 下 ...