Dockerfile文件指令

来源:互联网 发布:淘宝客采集软件微信 编辑:程序博客网 时间:2024/05/03 11:57

Dockerfile文件指令

 

前面介绍了15docker常用的docker命令,楼主没数...你不会真的反过头去数数吧,你就算数了也没关系,肯定是15!!!

 

15个镜像在手动创建镜像时经常用到,注意一个细节,这里说的是手动,肯定有自动!!!啊哈!既然有自动创建,为啥还要选择枯燥的手动呢?

 

这就是Dockerfile的由来,Dockerfile就是第一个手动的小车,很爽.Dockerfile包含创建镜像所需要的全部指令.基于在Dockerfile中的指令,可以使用docker build命令来创建镜像,通过减少镜像和容器的创建过程来简化部署.

 

前面简单的说过关于一点Dockerfile的东西,Dockerfile的内容如下:

指令 命令

指令不区分大小写,但是,咱们约定全部使用大写.

 

所有的Dockerfile都必须以FROM命令开始.FROM命令会指定镜像基于哪个基础镜像创建,接下来的命令也会基于这个基础镜像.FROM命令可以多次使用,表示会创建多个镜像.

具体语法如下:

FROM <image name>


例如:FROM ubuntu

 

上面的指定告诉我们,新的镜像将基于ubuntu的镜像来构建.

 

FROM命令之后,Dockerfile还提供了一些其他的命令以实现自动化.在文本文件或Dockerfile文件中这些命令的顺序就是它们被执行的顺序.

 

还有其他一些命令,虽然前面说过,但是没有具体的讲解.

 

1.MAINTAINER:设置该镜像的作者.语法如下:

MAINTAINER <author name>

 

2.RUN:shell或者exec的环境下执行的命令.RUN指令会在新创建的镜像上添加新的层面,接下来提交的结构用在Dockerfile的下一条指令中.语法如下:

RUN <command>


 

3.ADD:复制文件指令.他有两个参数<source><destination>.destination是容器内的路径.source可以是URL或者是启动配置上下文中的一个文件.语法如下:

ADD <source> <destination>


 

4.CMD:提供了容器默认的执行命令.Dockerfile只允许使用一个CMD指令.使用多个CMD会抵消之前所有的指令,只有最后一个指令生效.CMD3种形式:

(1).CMD [“executable”,”param1”,”param2”](2).CMD [”param1”,”param2”](3).CMD command param1 param2


 

5.EXPOSE:指定容器在运行时监听的端口.语法如下:

EXPOSE <port>


 

6.ENTRYPOINT: 配置给容器一个可执行的命令,这意味着在每次使用镜像创建容器时一个特定的应用程序可以被设置为默认程序.同时也意味着该镜像每次调用时仅能运行指定的应用.类似于CMD,Docker只能由一个ENTRYPOINT,多个ENTRYPOINT会抵消之前所有的指令,只执行最后的ENTRYPOINT指令.语法如下:

ENTRYPONT [‘executable’,’param1’,’param2’]ENTRYPOINT command param1 param2


 

7.WORKDIR:指定RUN,CMDENTRYPOINT命令的工作目录.语法如下:

WORKDIR /path/to/workdir


 

 

8.ENV:设置环境变量.他们使用键值对,增加运行程序的灵活性.语法如下

ENV <key> <value>


 

9.USER:镜像正在运行时设置一个UID.语法如下:

USER <uid>


 

10.VOLUME:授权访问从容器内到主机上的目录.语法如下:

VOLUME [‘/data’]


 

这就是Dockerfile文件的全部指令,一共十个,说多不多,说少不少.完全可以记住.

 

 

0 0
原创粉丝点击