Dockerfile文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dockerfile文件相关的知识,希望对你有一定的参考价值。

Dockerfile:包含创建镜像所需的全部指令

Dockerfile 分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令,支持以#开头的注释行


相关指令:

1.FROM image 或者 FROM <image>:<tag>

可以为后面的指令提供基础镜像,因此一个有效的Dockerfile必须以FROM指令作为第一条非注释指令,如果在同一个Dockerfile中创建多个镜像时,可以使用多个 FROM 指令(每个镜像一次)


2.MAINTAINER <author name>

设置该镜像的作者


3.ENV <key><value>或者 <key>=<value>

可以为镜像创建处理的容器声明环境变量,会被后续RUN指令使用,并在容器运行时保持


4.COPY <src> <dest>

复制src中指定的文件或目录到新的镜像中,当使用本地目录为源目录时,推荐使用COPY指令


5.ADD <src><dest>

和copy类似,都支持复制本地文件到镜像的功能,其中 src可以是一个指向网络文件的url;src也可以指向一个本地压缩文件,该文件在复制到容器中时会解压提取


6.RUN <command>

RUN指令会在前一条命令创建出的镜像的基础上创建一个容器,并在容器中运行命令,在命令结束运行后提交容器为新镜像,新镜像被Dockerfile中的下一条指令使用


7.  CMD ["executable","param1","param2"] (exec执行,推荐使用)或CMD <command>或 CMD ["param1","param2"] 或 CMD command param1 param2

一个Dockerfile中可以有多条CMD指令,但只有最后一条CMD指令有效


8.ENTRYPOINT <command> 或者 ["executable","param1","param2"],配置容器启动后执行的命令

配置给容器一个可执行的命令,一个Dockerfile中可以有多条ENTRYPOINT指令,但只有最后一条ENTRYPOINT指令有效


9.ONBUILD [INSTRUCTION]

添加一个将来执行的触发器指令到镜像中,配置当所创建的镜像作为其它新创建镜像的基础镜像时,所执行的操作指令


10.EXPOST <port>  

指定容器在运行是监听的端口映射


11.WORKDIR  /path/to/workdir

指定RUN,CMD和ENTRYPOINT命令的工作目录,可使用多个workdir指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径


12.USER <uid>

镜像正在运行时设置一个UID


13.VOLUME ["/data"]

授权访问从容器内到主机上的目录,一般用来存放数据库和需要保持的数据


本文出自 “天天向上goto” 博客,请务必保留此出处http://ttxsgoto.blog.51cto.com/4943095/1791133

以上是关于Dockerfile文件的主要内容,如果未能解决你的问题,请参考以下文章

41-Dockerfile-Dockerfile简介

初识Dockerfile+进阶Dockerfile(手把手叫你如何编写Dockerfile)

Dockerfile使用方法详解

10.Docker-----安装初步使用镜像Dockerfile常用指令通过Dockerfile文件封装nginx镜像并优化

Dockerfile最佳实践

Docker实战编写Dockerfile