加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

看完这篇,妈妈还会担忧你Docker入不了门?

发布时间:2019-06-13 12:17:14 所属栏目:移动互联 来源:苏静
导读:【51CTO.com原创稿件】上周工具溘然心血来潮说想养个小宠物,我问想养啥她又说任意,你看着办!!! 这我真的较量难办啊!可是咱们措施员能有个工具就不错了,还不赶忙宠着,我只能照办咯! 我去到了一家宠物店,半天也没有找到吻合的方针。正在我踌躇倘佯

相干指令

FROM

  1. FROM <image> [AS<name>] 
  2.  FROM <image>[:<tag>][AS <name>] 
  3.  FROM<image>[@<digest>] [AS <name>] 

指定基本镜像,当前镜像是基于哪个镜像建设的,有点相同 Java 中的类担任。FROM 指令必是 Dockerfile 文件中的首条呼吁。

MAINTAINER

  1. MAINTAINER <name> 

镜像维护者的信息,该呼吁已经被标志为不保举行使了。

LABEL

  1. LABEL<key>=<value><key>=<value><key>=<value> ... 

给镜像添加元数据,可以用 LABEL 呼吁替代 MAINTAINER 呼吁。指定一些作者、邮箱等信息。

ENV

  1. ENV <key><value> 
  2.  ENV <key>=<value> ... 

配置情形变量,配置的变量可供后头指令行使。跟 Java 中界说变量差不多的意思!

WORKDIR

  1. WORKDIR /path/to/workdir 

配置事变目次,在该指令后的 RUN、CMD、ENTRYPOINT, COPY、ADD 指令城市在该目次执行。假如该目次不存在,则会建设!

RUN

  1. RUN <command> 
  2.   RUN ["executable","param1", "param2"] 

RUN 会在当前镜像的最上面建设一个新层,而且能执行任何的呼吁,然后对执行的功效举办提交。提交后的功效镜像在 Dockerfile 的后续步调中可以行使。

ADD

  1. ADD[--chown=<user>:<group>] <src>... <dest> 
  2.   ADD[--chown=<user>:<group>] ["<src>",..."<dest>"] 

从宿主机拷贝文件可能文件夹到镜像,也可以复制一个收集文件!假如拷贝的文件是一个压缩包,会自动解压缩!

COPY

  1. COPY[--chown=<user>:<group>] <src>... <dest> 
  2.   COPY[--chown=<user>:<group>] ["<src>",..."<dest>"] 

从宿主机拷贝文件可能文件夹到镜像,不能复制收集文件也不会自动解压缩!

VOLUME

  1. VOLUME ["/data"] 

VOLUME 用于建设挂载点,一样平常共同 run 呼吁的 -v 参数行使。

EXPOSE

  1. EXPOSE <port>[<port>/<protocol>...] 

指定容器运行时对外袒露的端口,可是该指定现实上不会宣布该端口,它的成果是镜像构建者和容器运行者之间的记录文件。

回到容器呼吁中的 run 呼吁部门,run 呼吁有 -p 和 -P 两个参数。

假如是 -P 就是随机端口映射,容器内会随机映射到 EXPOSE 指定的端口;假如是 -p 就是指定端口映射,汇报运维职员容器内必要映射的端标语。

CMD

  1. CMD["executable","param1","param2"] 
  2.  CMD["param1","param2"] 
  3.  CMD command param1 param2 

指定容器启动时默认运行的呼吁,在一个 Dockerfile 文件中,假若有多个 CMD 呼吁,只有一个最后一个会见效!

同样是可以执行呼吁,也许你会认为跟上面的 RUN 指令很相似,RUN 指令是在构建镜像时辰执行的,而 CMD 指令是在每次容器运行的时辰执行的!docker run 呼吁会包围 CMD 的呼吁!

ENTRYPOINT

  1. ENTRYPOINT["executable", "param1", "param2"] 
  2.  ENTRYPOINT command param1 param2 

这个指令与 CMD 指令相同,都是指定启动容器时要运行的呼吁,假如指定了 ENTRYPOINT,则 CMD 指定的呼吁不会执行!

在一个 Dockerfile 文件中,假若有多个 ENTRYPOINT 呼吁,也只有一个最后一个会见效!差异的是通过 docker run command 呼吁会包围 CMD 的呼吁!

执行的呼吁不会包围 ENTRYPOINT,docker run 呼吁中指定的任何参数城市被当做参数转达给 ENTRYPOINT!

RUN、CMD、ENTRYPOINT 区别:

  • RUN 指令是在镜像构建时运行,尔后两个是在容器启动时执行!

  • CMD 指令配置的呼吁是容器启动时默认运行的呼吁,假如 docker run 没有指定任何的呼吁,而且 Dockerfile 中没有指定 ENTRYPOINT,那容器启动的时辰就会执行 CMD 指定的呼吁!有点相同代码中的缺省参数!

  • 假如配置了 ENTRYPOINT 指令,则优先行使!而且可以通过 dockerrun 给该指令配置的呼吁传参!

  • CMD 有点相同代码中的缺省参数。

USER

  1. USER <user>[:<group>] 
  2.   USER <UID>[:<GID>] 

用于指定运行镜像所行使的用户。

ARG

  1. ARG <name>[=<defaultvalue>] 

指定在镜像构建时可转达的变量,界说的变量可以通过 dockerbuild --build-arg = 的方法在构建时配置。

ONBUILD

  1. ONBUILD [INSTRUCTION] 

当所构建的镜像被当做其他镜像的基本镜像时,ONBUILD 指定的呼吁会被触发!

STOPSIGNAL

  1. STOPSIGNAL signal 

配置当容器遏制时所要发送的体系挪用信号!

HEALTHCHECK

  1. HEALTHCHECK [OPTIONS] CMD command (在容器内运行运行呼吁检测容器的运行环境) 
  1. HEALTHCHECK NONE (榨取从父镜像担任搜查) 

该指令可以汇报 Docker 怎么去检测一个容器的运行状况!

SHELL

  1. SHELL ["executable","parameters"] 

用于配置执行呼吁所行使的默认的 Shell 范例!该指令在 Windows 操纵体系下较量有效,由于 Windows 下凡是会有 CMD 和 Powershell 两种 Shell,乃至尚有 SH。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读