当前位置: 首页 > news >正文

苏州相城网站建设网站建栏目建那些

苏州相城网站建设,网站建栏目建那些,如何做网页公证,wordpress多格式视频播放插件Dockerfile由一行行命令语句组成#xff0c;并且支持以#开头的注释行。 一般的#xff0c;Dockerfile 分为四部分#xff1a;基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。 Dockerfile的指令是忽略大小写的#xff0c;建议使用大写#xff0c;使用 # 作为… Dockerfile由一行行命令语句组成并且支持以#开头的注释行。 一般的Dockerfile 分为四部分基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。 Dockerfile的指令是忽略大小写的建议使用大写使用 # 作为注释每一行只支持一条指令每条指令可以携带多个参数。 Dockerfile的指令根据作用可以分为两种构建指令和设置指令。   构建指令用于构建image其指定的操作不会在运行image的容器上执行   设置指令用于设置image的属性其指定的操作将在运行image的容器中执行。 可以在目录下创建.dockerignore文件让Docker忽略路径下的文件和目录。 DockerFile的每一个指令都会新构建一层。 UnionFS是有最大层数限制的比如AUFS曾经是最大不能超过42层现在是最大不能超过127层。所以对于一些编译、软件的安装、更新等操作无需分成好几层来操作这样会使得镜像非常臃肿拥有非常多的层不仅仅增加了构建部署的时间也很容易出错 指令描述格式from 构建指令。 指定基础镜像,它是最重要的一个且必须为dokefile文件开篇的第一个非注释行用于为镜像文件构建过程中指定基础镜像后续的指令运行于此基准镜像所提供的运行环境 默认docke会在本机寻找指定的镜像找不到的时候则从docke hub registery拉取所需镜像如果会找不到则报错返回报错信息 如果在同一个Dockerfile中创建多个镜像时可以使用多个 FROM 指令。 DockerFile还存在一个特殊的镜像srcatch这个镜像是一个虚拟的概念并不实际存在它表示一个空白的镜像。 如果你以scratch作为基础镜像意味着你将不使用任何镜像为基础接下来你所写的指令将作为第一层开始存在。不以任何系统为基础直接将可执行文件复制进镜像的做法并不罕见。如swarm、coreos/etcd。对Linux下静态编译的程序来说并不需要其他操作提供其运行时支持所需的一切库都在可执行文件里了因此使用scratch作为基础可以使镜像的体积更加小巧 from  repository[:tag]或者 from repositorydigest repository为基础镜像名称   tag为镜像标签为可选项省略时为latest该image的最后修改的版本 MAINTAINER 构建指令 用于为docke提供作者信息无顺序限制 用于将image的制作者相关的信息写入到image中。当我们对该image执行docker inspect命令时输出中有相应的字段记录该信息。 此命令已经过时可以使用LABEL maintainerxxx 来替代定义多个LABEL时可以使用 【\】反划线来跨行 copy 用于从docker主机复制文件至创建的新镜像文件但不会自动解压不能从【 远端URL 】 复制。 目标路径是容器内的绝对路径也可以是工作目录下的相对路径工作目录可以使用WORKDIR指令进行指定。 使用COPY指令会将源路径的文件的所有元数据都拷贝比如读、写、指定全选、时间变更等。 源路径 可以是多个甚至可以是通配符其通配符规则要满足 Go 的 filepath.Match 规则 目标路径不需要事先创建如果目录不存在会在复制文件前先行创建缺失目录 在使用该指令的时候还可以加上 --chownuser:group 选项来改变文件的所属用户及所属组。 文件复制准则 1 COPY [--chownuser:group] 源路径... 目标路径 2 COPY [--chownuser:group] [源路径1,... 目标路径] add 构建指令 ADD指令和COPY的格式和性质基本一致只不过是在COPY的基础上增加了一些功能。 如果是一个目录那么会将该目录下的所有文件添加到container中不包括目录 如果src是文件且dest中不使用斜杠结束则会将dest视为文件src的内容会写入dest 如果src是文件且dest中使用斜杠结束则会src文件拷贝到dest目录下。 目标路径为一个URL时会将其自动下载到目标路径下但是其权限被自动设置成了600如果这并不是你想要的权限那么你还需要额外增加一层RUN命令进行更改另外如果下载的是一个压缩包同样你还需要额外增加一层RUN命令进行解压缩。所以在这种情况下你还不如指定只用一层RUN使用curl或者wget工具进行下载并更改权限然后进行解压缩最后清理无用文件 当你的源路径为压缩文件并且不想让Docker引擎将其自动解压缩这个时候就不可以使用ADD命令你可以使用COPY命令进行完成 run 构建指令。 每条 RUN 指令将在当前镜像基础上执行指定命令并提交为新的镜像。当命令较长时可以使用 \ 来换行 RUN可以运行任何被基础image支持的命令。如基础image选择了ubuntu那么软件管理部分只能使用ubuntu的命令 shell格式RUN command 或 exec格式RUN [executable, param1, param2] 前者将在 shell 终端中运行命令即 /bin/sh -c后者则使用 exec 执行。指定使用其它终端可以通过第二种方式实现例如 RUN [/bin/bash, -c, echo hello]。 volume 设置指令 用于构建镜像时定义匿名卷。 容器存储层应该保持无状态化容器运行时应尽量保持容器内不发生任何写入操作对于需要保存动态数据的应用其数据文件应该将其保存在数据卷中。 容器匿名卷目录指定可以通过docker run命令中指定-v参数来进行覆盖。 如果挂载点目录下此前存在文件docker run命令会在卷挂载完成之后将此前的所有文件复制到新挂载的卷中 运行通过该Dockerfile生成image的容器/tmp/data目录中的数据在容器关闭后里面的数据还存在。 例如另一个容器也有持久化数据的需求且想使用上面容器共享的/tmp/data目录那么可以运行下面的命令启动一个容器 docker run -t -i -rm -volumes-from container1 image2bash 其中container1为第一个容器的IDimage2为第二个容器运行image的名字。 VOLUME 路径VOLUME [“路径1”, “路径2”, …]expose 设置指令 EXPOSE指令是声明运行时容器服务端口这只是一个声明在运行时并不会因为这个声明应用就会开启这个端口的服务。 在Dockerfile中这样声明有两个好处一个是帮助镜像使用者更好的理解这个镜像服务的守护端口另一个作用则是在运行时使用随机端口映射时也就是docker run -p命令时会自动随机映射EXPOSE端口。 要将EXPOSE和在运行时使用-p 宿主:容器端口区分开来-p是映射宿主端口和容器端口换句话说就是将容器的对应端口服务公开给外界访问而EXPOSE仅仅是声明端口使用什么端口而已并不会自动在宿主进行端口映射 EXPOSE指令可以一次设置多个端口号相应的运行容器的时候可以配套的多次使用-p选项。 EXPOSE 端口号 EXPOSE 端口号/协议 默认协议为TCP env 设置指令 指定环境变量它可以被其后的add、copy等调用 可以通过docker inspect查看这个环境变量也可以通过在docker run --env keyvalue时设置或修改环境变量 如果你要设置多个环境变量为了美观你可以使用\来进行换行。多个环境变量的隔开使用空格进行隔开的如果某个环境变量的值是由一组英文单词构成那么你可以将其使用进行圈起来 值得注意的是如果你想通过CMD或者ENTRYPOINT指令的exec格式来打印环境 CMD [echo, $MODE] CMD [echo, $MODE] 上面这样都是不能正确输出环境变量的值的你可以改成exec格式来执行shell命令如下 CMD [sh, -c, echo $MODE] 调用格式$name或者${name} wokrdir 设置指令 使用WORKDIR指令来制定工作目录(或者称为当前目录)以后各层操作的当前目录就是为指定的目录如果该目录不存在WORKDIR会自动帮你创建目录 WORKDIR指令可以通过docker run命令中的-w参数来进行覆盖 user 设置指令 指令用于将会用以什么样的用户去运行默认为root 可以指定用户名或者UID组名或者GID或者两者的结合 USER指令可以在docker run命令中的-u参数进行覆盖 后续的 RUN 也会使用指定用户。 当服务不需要管理员权限时可以通过该命令指定运行用户。并且可以在之前创建所需要的用户例如RUN groupadd -r postgres useradd -r -g postgres postgres。要临时获取管理员权限可以使用 gosu而不推荐 sudo healthcheck 告诉Docker该如何判断容器的状态是否正常这是1.12引入的新指令 在没有HEALTHCHECK指令之前Docker引擎只可以通过容器内主进程是否退出来判断容器状态是否异常。很多情况下这没有问题但是如果程序进入了死锁状态或者死循环状态应用进程并不退出但是该容器已经无法继续提供服务了。在1.12之前Docker引擎不会检测到容器的这种状态从而不会重新调度导致可能容器已经无法提供服务了却仍然还在接收用户的请求。 HEALTHCHECK指令只可以出现一次如果有多个HEALTHCHECK指令那么只有最后一个才会生效 HEALTHCHECK [options] CMD 命令检查容器健康状态的命令 HEALTHCHECK NONE如果基础镜像有健康检查指令这一行将会屏蔽掉其健康检查指令 HEALTHECHECK支持下列选项      –interval间隔两次检查的时间间隔默认为30s      –timeout时长健康检查命令运行超时时间如果超过这个时间本次健康检查将会判定                                        为失败默认为30s       –retries次数当连续失败指定次数之后则将容器状态视为unhealthy默认为3次 onbuildONBUILD是一个特殊的指令它后面跟着的是其他指令比如COPY、RUN等而这些命令在当前镜像被构建时并不会被执行。只有以当前镜像为基础镜像去构建下一级镜像时才会被执行ONBUILD 其他指令shell 指定Dockerfile中 【 shell form 】命令的默认shell。 Linux中默认shell为 【 “/bin/sh” “-c”】 arg 构建参数ARG和ENV指令一样都是设置环境变量。与之不同的是ARG设置的环境变量只是在镜像构建时所设置的在将来容器运行时是不会存在这些环境变量的。但是不要因此就用ARG来保存密码之类的信息因为通过docker history还是能够看得到的。ARG指令与ENV指令的使用类似 ARG构建参数可以通过docker run命令中的--build-arg参数来进行覆盖 cmd 设置指令。 Docker不是虚拟机容器就是进程。既然是进程那么在启动容器的时候就需要指定运行的程序及参数。CMD就是指定默认的容器主进程的启动命令的 每个 Dockerfile 只能有一条 CMD 命令。如果指定了多条命令只有最后一条会被执行。 如果用户启动容器时候指定了运行的命令则会覆盖掉 CMD 指定的命令 这里边包括参数的一定要用双引号就是,不能是单引号。千万不能写成单引号。 原因是参数传递后docker解析的是一个JSON array 一些命令在加上sh -c之后有可能会发生意想不到的错误因此在Dockerfile中使用RUN指令时更加推荐使用exec格式最后需要牢记使用docker run命令指定要执行的命令可以覆盖RUN指令如果我们的docker run中指定了我们将要执行的命令并且在Dockerfile中也指定了CMD命令 exec格式CMD [executable,param1,param2]  使用 exec 执行推荐方式 shell格式CMD command param1 param2 在 /bin/sh 中执行提供给需要交互的应用。 CMD [param1,param2] 提供给 ENTRYPOINT 的默认参数如果CMD指令使用上面的形式那么Dockerfile中必须要有配套的ENTRYPOINT entrypoint 设置指令 指定容器运行程序及参数 配置容器启动后执行的命令并且不可被 docker run 提供的参数覆盖。 每个 Dockerfile 中只能有一个 ENTRYPOINT当指定多个时只有最后一个起效 ENTRYPOINT也更加推荐使用exec格式ENTRYPOINT在docker run命令中同样也可以进行指定只不过比CMD指令来的繁琐一些需要指定--entrypoint参数。同样在docker run命令中指定了--entrypoint参数的话会覆盖Dockerfile中ENTRYPOINT上的指令。 该指令的使用分为两种情况一种是独自使用另一种和CMD指令配合使用。 当独自使用时如果你还使用了CMD命令且CMD是一个完整的可执行的命令那么CMD指令和ENTRYPOINT会互相覆盖只有最后一个CMD或者ENTRYPOINT有效。 CMDecho “Hello, World!”  ENTRYPOINT ls -l  另一种用法和CMD指令配合使用来指定ENTRYPOINT的默认参数这时CMD指令不是一个完整的可执行命令仅仅是参数部分 ENTRYPOINT指令只能使用JSON方式指定执行命令而不能指定参数。 CMD [-l]  ENTRYPOINT [/usr/bin/ls]  exec格式ENTRYPOINT [executable, param1, param2] shell格式ENTRYPOINT command param1 param2shell中执行
http://www.ihoyoo.com/news/13952.html

相关文章:

  • 怎样建立网站有哪些流程深圳宝安高端网站建设报价
  • 厦门网站建设首选厦门一联网络中国跨境电商前三名
  • 如何在网站上做背景图片怎么做凡科商城是什么
  • 珠海网站制作设计方案wordpress加入海报功能
  • 做网站用html上海企业制作网站有哪些
  • 自建站平台简单网站建设方案策划
  • 国外美容网站wap网页制作工具
  • 知名网站建设推荐网站建设谈判
  • 公司企业网站维护wordpress 数据库大小
  • 长春做网站南京做网站建设
  • 企业网站策划建设方案百度短视频如何引流与推广
  • 淘宝客怎样建网站上海人才市场官网
  • 江苏省建设考试网站准考证打印wordpress用户组
  • 网站建设万首先金手指12做网站的主题
  • 35互联做的网站后台怎样登录e福州是哪个公司开发
  • 洛阳便宜网站建设门头沟做网站
  • 宁国做网站手机网站制作的公司
  • 茂名网站建设电话高端品牌职业女套装
  • 西安网站建设xazxcy游戏源码下载
  • 免费购物网站系统企业网站的制作公司
  • 龙岩市建设局网站网站推广的基本方式
  • 制作网站的第一步河北建设工程信息网天行建和园
  • 跨境电商自己做网站引流湖南网站建设 地址磐石网络
  • 企业 wordpress 主题seo快速排名软件方案
  • 网站 前台后台wordpress作者专栏
  • asp网站开发实训总结如何增加网站转化率
  • 我的个人博客网站网络广告图片
  • 网站上线所需的东西哪里好推广步骤
  • 成都手机微信网站建设报价小程序开发报价方案
  • dedecms做网站视频浙江非标电动车