19 9月, 2016

Dockerfile 关键字

内容纲要

Dockerfile关键字

关键字 作用 例子
FROM ---基于哪个镜像。FROM命令必须是Dockerfile的首个命令 FROM ubuntu
RUN ---Dockerfile执行命令的核心部分。它接受命令作为参数并用于创建镜像。不像CMD命令,RUN命令用于创建镜像(在之前commit的层之上形成新的层) RUN yum install -y httpd
MAINTAINER ---镜像创建者 MAINTAINER authors_name
CMD ---container启动时执行的命令,但是一个Dockerfile中只能有一条CMD命令(多条则执行最后一条CMD)
---CMD主要用于container启动时指定的服务,当docker run command的命令匹配到CMD command时,会替换CMD执行的命令。
CMD "echo" "hello docker!"
ENTRYPOINT ---container启动时执行的命令,但是一个Dockerfile中只能有一条ENTRYPOINT命令(多条则执行最后一条。)
---ENTRYPOINT没有CMD的可替换特性。
ENTRYPOING echo
USER ---设置运行容器的UID。 USER 500
EXPOSE ---container内部服务开启的端口。主机上要用还得在启动container时,做host-container的端口映射:docker run -d -p 127.0.0.1:33301:22 centos-ssh EXPOSE 8080
ENV ---用来设置环境变量。
这些变量以“key=value”的形式存在,并可以在容器内被脚本或者程序调用。
ENV SERVER_WORKS 4
ADD ---将文件

拷贝到container的文件系统对应的路径


---如果源是一个URL,那么该URL的内容将被下载并复制到容器中
---所有拷贝到container中的文件和文件夹权限为0755,uid和gid为0。
---如果文件是可识别的压缩格式,则docker会帮忙解压缩。
---ADD只有在build镜像的时候运行一次,后面运行container的时候不会再重新加载了
注意: 使用docker build - < somefile的方式进行build,是不能直接将本地文件ADD到container中的,只能ADD urlfile。

ADD /host_app_folder /container_app_folder
VOLUME ---可以将本地文件夹或者其他container的文件夹挂载到container中 VOLUME ["/my_files"]
WORKDIR ---切换目录用,可以多次切换(相当于cd命令),对RUN,CMD,ENTRY WORKDIR ~/

You may also like...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注