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

wordpress建博客网站吗教育行业网站建设

wordpress建博客网站吗,教育行业网站建设,移动商城积分兑换,wordpress 市场占有率Docker#xff1a;镜像构建 DockerFile 镜像构建docker build DockerfileFROMCOPYENVWORKDIRADDRUNCMDENTRYPOINTUSERARGVOLUME 镜像构建 在Docker官方提供的镜像中#xff0c;大部分都是基础镜像#xff0c;他们只提供某个简单的功能#xff0c;如果想要一个功能更加丰富… Docker镜像构建 DockerFile 镜像构建docker build DockerfileFROMCOPYENVWORKDIRADDRUNCMDENTRYPOINTUSERARGVOLUME 镜像构建 在Docker官方提供的镜像中大部分都是基础镜像他们只提供某个简单的功能如果想要一个功能更加丰富的镜像就需要自己制作。 比如说一个容器配置完毕后想要让容器便于传输就可以封装为一个镜像。或者说希望让自己的容器可以被别人看到提交到仓库上去也要先变为镜像。 在Docker指令中docker commit可以使用快照的形式快速制作一个镜像它直接将一个容器导出为镜像。除此之外Docker还提供了另一种方式构建镜像编写Dockerfile。 Dockerfile是一个文件首字母大小写任意依据这个文件就可以构建出一个镜像。在联网的状态下只要有这个文件就可以构建出任意的镜像。 docker build docker bild命令可以读取Dockerfile文件并依据文件构建镜像。 语法 docker build [option] path参数 -f指定要使用的Dockerfile路径默认为当前目录下的Dockerfile文件-t指定镜像的名称与标签 具体使用在稍后Dockerfile编写时一起讲解。 Dockerfile Dockerfile是一个文本文件内部包含多条指令这些指令描述了如何构建一个镜像如果构建的镜像不符合要求还可以修改Dockerfile反复制作镜像。 Dockerfile的不区分大小写后续的指令都以大写形式。 Dockerfile使用#进行注释 # 这是一行注释FROM 功能指定一个基础镜像 语法 FROM image[:tag] [AS name]指定镜像时可以使用as对这个镜像重命名这样可以在一个DockerFile中进行多级构建这个稍后会讲解。 示例 FROM ubuntu:22.04 AS ubt1 FROM ubuntu:22.04 AS ubt2使用FROM指定基础镜像时如果基础镜像不存在那么会自动拉取。 COPY 功能从宿主机或者其它镜像中拷贝文件 语法 COPY [option] src[,src] dst COPY [option] src[,src] dst将文件从src拷贝到dst如果有多个文件使用逗号分隔。如果在文件名中没有出现空格可以不用双引号如果文件名内有空格就需要使用src和dst。 选项 --chown修改用户和组--from可以从之前的镜像中拷贝文件 拷贝宿主机文件 FROM ubuntu:22.04 COPY ./test.txt /以上代码指定了一个ubuntu的基础镜像并拷贝一个宿主机文件test.txt到根目录下。 通过docker build构建镜像 选项-t指定镜像名为my-ubuntu:v1随后开始执行Dockerfile内部的指令可以看到[2/2]COPY ./test.txt /这就是之前写的COPY指令。 实例化一个容器 进入容器后根目录就多出了test.txt文件这是构建镜像时拷贝进去的。 除此之外还可以进行多级构建所谓的多级构建就是可能最终镜像内部的文件来自不同环境。那么先在某些镜像环境内部生成所需的文件再把文件拷贝到最终的镜像内。 示例 FROM nginx AS build-stageFROM ubuntu COPY --frombuild-stage /usr/share/nginx/html /以上代码先创建了一个nginx镜像重命名为build-stage随后创建一个ubuntu镜像在ubuntu镜像中拷贝来自build-stage的内容把目录/usr/share/nginx/html下的文件拷贝到自己的根目录。 多级构建时最终的镜像是最后一个FROM指定的镜像前面指定的镜像都是为了生成某些文件。 构建镜像 最终生成一个my-ubuntu:v2镜像。 进入镜像 进入后根目录多出了index.html输出后得到一个Welcome to nginx!的网页文件这个文件就是在nginx镜像生成的最后拷贝到了ubuntu中。 ENV 功能设置环境变量 语法 ENV namevalue 环境变量不仅可以在容器内部使用还可以在后文通过${}引用。 示例 FROM nginx AS build-stageFROM ubuntu ENV ngx_path/usr/share/nginx/html COPY --frombuild-stage ${ngx_path} /定义了一个环境变量ngx_path后续可以直接通过${ngx_path}取出变量值。 WORKDIR 功能修改工作目录 语法 WORKDIR path在构建镜像时默认的工作目录都是/根目录如果想要切换目录可以使用WORKDIR。 示例 FROM nginx WORKDIR /usr/share/nginx/html COPY ./test.txt ./以上代码把宿主机的./test.txt文件拷贝到容器的/usr/share/nginx/html目录下。 因为修改了WORKDIR所以./就是/usr/share/nginx/html。 ADD 功能将文件添加到镜像中可以解压缩tar压缩文件 语法 ADD src dst选项 --chown修改文件所有者和组 此处的COPY非常类似COPY用法也是一致的功能都是拷贝文件。 但是ADD比COPY更强大如果src是压缩包那么会自动完成解压缩。如果src是一个url还会完成自动下载。 示例 FROM ubuntu:22.04 ADD ./test.tar /将test.tar文件通过ADD命令添加到镜像的根目录中。 输出结果 创建完镜像再启动后根目录下的内容不是test.tar而是test.txt说明文件被自动解压了。 RUN 功能在构建镜像的过程中执行命令 语法 RUN command RUN [command, arg1, arg2,...]在构建镜像的过程中可以通过RUN执行指定命令两种语法中他们的效果其实是不一样的。 直接RUN command会以/bin/sh -c来执行指令这可以提供一些bash的特性比如可以使用通配符? *等进行替换以及运行.sh程序等。 但是使用[]的形式执行命令不会具有bash特性。 示例 FROM ubuntu:22.04 COPY ./test* / RUN mkdir dir1 RUN mkdir dir2 RUN cp ./test* dir1 RUN [cp, ./test*, dir2]以上代码把宿主机的./test*拷贝到镜像的根目录这是一个通配符可以拷贝多个文件。 随后通过RUN执行mkdir命令创建了两个目录。最后把从宿主机拷贝来的文件再拷贝到目录里面分别使用RUN command和RUN []两种语法。 输出结果 在当前目录下有test、test.cpp、test.java、test.txt四个文件构建镜像时可以看到RUN cp ./test* dir1执行成功了但是RUN [cp, ./test*, dir2]失败了。 因为RUN []不支持bash特性导致无法匹配./test*通配符最后显示找不到./test*这个文件。 CMD 功能指定容器启动时执行的命令 语法 CMD [command,arg1,arg2,...] CMD command arg1 arg2 ...其中CMD command和CMD []的两种形式和之前的RUN一样重点在于是否具有shell 特性。 示例 FROM ubuntu:22.04 CMD [echo, hello world]这个镜像在启动时会执行CMD内的命令输出hello world字符串。 原先ubuntu的CMD是bash也就是进入命令行由于输出字符串的命令将其覆盖了所以无法直接进入命令行。 除此之外CMD的命令还会进行覆盖比如Dockerfile内部的多个CMD后面的会覆盖前面的 FROM ubuntu:22.04 CMD [echo, hello world] CMD [echo, hello C] CMD [echo, hello Docker]最后该镜像的命令是echo “hello Docker”前两个被覆盖了。 除此之外在启动容器时用户也可以指定命令这个命令也可以覆盖CMD ENTRYPOINT 功能指定容器启动时执行的命令 语法 ENTRYPOINT [command, arg1, arg2,...] ENTRYPOINT command arg1 arg2 ...ENTRYPOINT和CMD的功能是一样的但是语法特性略有差别。 在CMD中后面的CMD会覆盖前面的CMD启动容器时的命令也会覆盖CMD。 在ENTRYPOINT中一个Dockerfile只有最后一个ENTRYPOINT生效但是用户输入命令时会变成ENTRYPOINT的参数而不是覆盖。 示例 FROM ubuntu:22.04 ENTRYPOINT [echo, hello world]构建成功后在启动容器时指定命令echo hello Docker输出结果却不是hello Docker而是 hello world echo hello Docker这是因为后面的echo hello Docker都变成了ENTRYPOINT内部的指令的参数最后相当于执行 echo hello world echo hello DockerUSER 功能指定运行容器时的用户或用户ID 语法 USER user[:group]默认情况下用户为root可以通过USER命令修改后文执行指令时的用户。 示例 FROM ubuntu:22.04 RUN useradd new_usr USER new_usr WORKDIR /home/new_usr以上代码通过RUN创建了一个new_usr用户并切换用户为new_usr。 输出结果 创建容器后默认用户就是new_usr并且处于该用户的家目录中。 ARG 功能定义构建时的变量 语法 ARG name[value]这个用于指定一些参数这个参数可以在Dockerfile中通过${}引用。 示例 FROM ubuntu:22.04 ARG path/home/new_usr RUN useradd new_usr USER new_usr WORKDIR ${path}将刚才的用户家目录定义在参数path中后续可以直接通过${path}引用。 VOLUME 功能创建一个匿名卷并指定挂载点 语法 VOLUME [path] VOLUME path由于镜像实例化时用户所处的路径是不确定的就算确定了路径也不保证用户存在这个路径所以在镜像构建阶段不能创建绑定卷只能创建匿名卷。 在VOLUME的参数中指定的path就是要进行绑定的匿名卷可以持久化一些重要数据就算容器崩溃用户也有机会找回数据。
http://www.hkea.cn/news/14534550/

相关文章:

  • 上海景观设计公司百度关键词优化教程
  • 网站建设与维护论文世界500强企业排名2022最新名单
  • 三沙网站建设商业网站的特点
  • 网站建设投票系统总结wordpress实现注册登陆
  • 临沧建设局网站河南建设政务网
  • 泉州企业做网站石家庄最新今天的消息
  • 学校网站进不去怎么办介绍一个做美食的网站
  • 推送网站建设常用的关键词有哪些
  • apache php 多个网站如何做网站首页关键词
  • 做公司网站注意事项wordpress主题验证码
  • 廊坊市建设局官方网站娄底市网站建设制作
  • 做冰饮视频网站泉州做网站优化哪家好
  • 网站建设本地还是外地网站建设方案书怎么签字上传
  • 设计网站制作著名的网站有哪些
  • 网站开发前端与后端源代码wordpress多种设备网页生成
  • 免费建工作室网站工厂订单外发代加工外发加工网
  • 潇朋友免费班级网站建设系统做图网站地图
  • 昆明专业的网站制作建设摘抄一则新闻
  • 外贸联系网站创建网站的网站
  • 一 一个甜品网站建设目标网站开发分为哪几种类型
  • 深圳微商城网站建设德国设计网站
  • 电商网站商品表设计下面不属于网络推广方法
  • 国外产品网站点击到达网站指定位置怎么做
  • 做湲兔费网站视颍邯郸网络运营处理中心
  • 万户网站做网站配送地址怎么变换
  • 青岛公司网站建设廊坊网站建设开发
  • 济南专业网站制作酒泉网站建设有哪些
  • 做网站大约要多少钱企梦网站建设
  • 做美食的网站有哪些长春建站公司
  • 兰州市城乡建设局网官网站百度打广告多少钱