手机网站判断跳转,官方百度,wordpress标签数量,seo网站结构图文章目录 ADD 复制文件COPY 复制文件ARG 设置构建参数CMD 容器启动命令ENTRYPOINT ⼊⼝点ENV 设置环境变量EXPOSE 声明暴露的端⼝FROM 指定基础镜像LABEL 为镜像添加元数据MAINTAINER 指定维护者的信息RUN 执⾏命令USER 设置⽤户VOLUME 指定挂载点WORKDIR 指定⼯作⽬录 ADD 复制… 文章目录 ADD 复制文件COPY 复制文件ARG 设置构建参数CMD 容器启动命令ENTRYPOINT ⼊⼝点ENV 设置环境变量EXPOSE 声明暴露的端⼝FROM 指定基础镜像LABEL 为镜像添加元数据MAINTAINER 指定维护者的信息RUN 执⾏命令USER 设置⽤户VOLUME 指定挂载点WORKDIR 指定⼯作⽬录 ADD 复制文件 从 src ⽬录复制⽂件到容器的 dest其中 src 可以是 Dockerfile 所在⽬录的相对路径可以是⼀个URL也可以是⼀个压缩包 格式:
ADD src… destADD [“src”,… “dest”]
注意:
src 必须在构建的上下文内不能使⽤例如 ADD …/somethine /something 这样的命令因为 docker build 命令⾸先会将上下⽂路径和其⼦⽬录发送到docker daemon如果 src 是一个URL同时 dest 不以斜杠结尾dest 将会被视为文件src 对应的文件内容将会被下载到 dest如果 src 是一个URL同时 dest 以斜杠结尾dest 将会被视为目录src 对应内容将会被下载到 dest 目录如果 src 是一个目录那么整个目录下的内容将会被拷贝包括文件系统元数据如果文件是可识别的压缩包格式则 docker 会自动解压
COPY 复制文件 复制本地端的 src 到容器的 dest。COPY指令和ADD指令类似COPY不⽀持URL和压缩包 格式:
COPY src… destCOPY [“src”,… “dest”]
ARG 设置构建参数 ARG指令⽤于设置构建参数类似于ENV。和ARG不同的是ARG设置的是构建时的环境变量在容器运⾏时是不会存在这些变量的例如: ARG user1someuser 格式:
ARG name[default value]
CMD 容器启动命令 CMD指令⽤于为执⾏容器提供默认值。每个Dockerfile只有⼀个CMD命令如果指定了多个CMD命令那么只有最后⼀条会被执⾏如果启动容器的时候指定了运⾏的命令则会覆盖掉CMD指定的命令 格式:
CMD [“executable”,“param1”,“param2”]CMD [“param1”,“param2”] (为ENTRYPOINT指令提供预设参数)CMD command param1 param2 (在shell中执⾏)
ENTRYPOINT ⼊⼝点 ENTRYPOINT和CMD指令的⽬的⼀样都是指定Docker容器启动时执⾏的命令可多次设置但只有最后⼀个有效。ENTRYPOINT不可被重写覆盖 格式:
ENTRYPOINT [“executable”, “param1”, “param2”]ENTRYPOINT command param1 param2
ENV 设置环境变量 例如: ENV JAVA_HOME /path/to/java 格式:
ENV key valueENV keyvalue …
EXPOSE 声明暴露的端⼝ ⽤于声明在运⾏时容器提供服务的端⼝ 格式:
EXPOSE port [port…]
注意:
这只是⼀个声明运⾏时并不会因为该声明就打开相应端⼝该指令的作⽤主要是帮助镜像使⽤者理解该镜像服务的守护端⼝当运⾏时使⽤随机映射时会⾃动映射 EXPOSE 的端⼝
# 声明暴露⼀个端⼝示例
EXPOSE port1
# 相应的运⾏容器使⽤的命令
docker run -p port1 image
# 也可使⽤-P选项启动
docker run -P image
# 声明暴露多个端⼝示例
EXPOSE port1 port2 port3
# 相应的运⾏容器使⽤的命令
docker run -p port1 -p port2 -p port3 image
# 也可指定需要映射到宿主机器上的端⼝号
docker run -p host_port1:port1 -p host_port2:port2 -p host_port3:port3 imageFROM 指定基础镜像 使⽤ FROM 指令指定基础镜像FROM指令有点像Java⾥⾯的 “extends” 关键字。需要注意的是FROM指令必须指定且需要写在其他指令之前FROM指令后的所有指令都依赖于该指令所指定的镜像。 格式:
FROM imageFROM image:tagFROM imagedigest
LABEL 为镜像添加元数据
格式:
LABEL keyvalue keyvalue keyvalue …
# 使⽤ 和\转换命令⾏示例:
LABEL com.example.vendorACME Incorporated
LABEL com.example.label-with-valuefoo
LABEL version1.0
LABEL descriptionThis text illustrates \
that label-values can span multiple lines.MAINTAINER 指定维护者的信息 该指令现已过时建议适用如下形式: LABEL maintainer“dsd2333” RUN 执⾏命令 RUN command 在shell终端中运⾏在 Linux 中默认是 /bin/sh -c在 windows 中是 cmd /s/c使⽤这种格式就像直接在命令⾏中输⼊命令⼀样。RUN [“executable”, “param1”,“param2”] 使⽤exec执⾏这种⽅式类似于函数调⽤。指定其他终端可以通过该⽅式操作例如 RUN [“/bin/bash”, “-c”, “echo hello”] 该⽅式必须使⽤双引号[]⽽不能使⽤单引号[]因为该⽅式会被转换成⼀个JSON 数组。 格式:
RUN commandRUN [“executable”, “param1”, “param2”]
USER 设置⽤户 该指令⽤于设置启动镜像时的⽤户或者UID写在该指令后的RUN、CMD以及ENTRYPOINT指令都将使⽤该⽤户执⾏命令 格式:
USER 用户名
VOLUME 指定挂载点 该指令使容器中的⼀个⽬录具有持久化存储的功能该⽬录可被容器本身使⽤也可共享给其他容器。当容器中的应⽤有持久化数据的需求时可以在Dockerfile中使⽤该指令 格式:
VOLUME [“/data”]
当该Dockerfile被构建成镜像后/tmp⽬录中的数据即使容器关闭也依然存在。如果另⼀个容器也有持久化的需求并且想使⽤以上容器/tmp⽬录中的内容则可使⽤如下命令启动容器:
docker run -volume-from 容器ID 镜像名称 # 第⼀个容器的ID 第⼆个容器所使⽤的镜像WORKDIR 指定⼯作⽬录 切换⽬录指令类似于cd命令写在该指令后的 RUN CMD 以及 ENTRYPOINT 指令都将该⽬录作为当前⽬录并执⾏相应的命令 格式:
WORKDIR /path/to/workdir