内容纲要
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的文件系统对应的路径
|
ADD /host_app_folder /container_app_folder |
VOLUME | ---可以将本地文件夹或者其他container的文件夹挂载到container中 | VOLUME ["/my_files"] |
WORKDIR | ---切换目录用,可以多次切换(相当于cd命令),对RUN,CMD,ENTRY | WORKDIR ~/ |