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

网站建设需要什么功能wordpress模板首页是哪个文件夹

网站建设需要什么功能,wordpress模板首页是哪个文件夹,网站如何建设与安全管理制度,东营新闻文章目录 1、commit方式创建镜像1.1、前期准备1.2、制成镜像1.3、启动镜像1.3.1、启动镜像启动nginx1.3.2、一个命令直接全部启动1.3.3、两种方式区别 1.4、commit创建镜像方式的本质 2、Dockerfile的使用2.1、Dockerfile指令2.2、nginx镜像制作案例2.3、查看构建历史#xff… 文章目录 1、commit方式创建镜像1.1、前期准备1.2、制成镜像1.3、启动镜像1.3.1、启动镜像启动nginx1.3.2、一个命令直接全部启动1.3.3、两种方式区别 1.4、commit创建镜像方式的本质 2、Dockerfile的使用2.1、Dockerfile指令2.2、nginx镜像制作案例2.3、查看构建历史为镜像指定环境变量挂载目录默认启动命令 2.4、run VS cmd VS entrypointdocker容器的主业 推荐的ENTRYPOINT 方式 3、commit和Dockerfile的区别 1、commit方式创建镜像 我要将一个包含nginx的容器做成一个镜像供其他人使用这样其他人就不必再执行nginx安装等操作。 1.1、前期准备 首先还是启动一个容器 docker run -it --name n1 centos /bin/bash命名为n1。 然后在容器内部安装nginx yum install nginx -y这里yum源出现问题 解决看这里 安装成功并启动运行 whereis nginx/usr/sbin/nginx在另一个终端查看nginx情况 docker inspect n1 # n1是该容器的name[{Id: 704c3c99bc66f5e22ee47be1a989701986a48aae1ad6d69b2abba2e017842fc9,Created: 2023-08-06T12:27:49.98892154Z,Path: /bin/bash,Args: [],State: {Status: running,Running: true,Paused: false,Restarting: false,OOMKilled: false,Dead: false,Pid: 16981,ExitCode: 0,Error: ,StartedAt: 2023-08-06T12:27:50.31650392Z,FinishedAt: 0001-01-01T00:00:00Z},Image: sha256:5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6,ResolvConfPath: /var/lib/docker/containers/704c3c99bc66f5e22ee47be1a989701986a48aae1ad6d69b2abba2e017842fc9/resolv.conf,HostnamePath: /var/lib/docker/containers/704c3c99bc66f5e22ee47be1a989701986a48aae1ad6d69b2abba2e017842fc9/hostname,HostsPath: /var/lib/docker/containers/704c3c99bc66f5e22ee47be1a989701986a48aae1ad6d69b2abba2e017842fc9/hosts,LogPath: /var/lib/docker/containers/704c3c99bc66f5e22ee47be1a989701986a48aae1ad6d69b2abba2e017842fc9/704c3c99bc66f5e22ee47be1a989701986a48aae1ad6d69b2abba2e017842fc9-json.log,Name: /n1,RestartCount: 0,Driver: overlay2,Platform: linux,MountLabel: ,ProcessLabel: ,AppArmorProfile: ,ExecIDs: null,HostConfig: {Binds: null,ContainerIDFile: ,LogConfig: {Type: json-file,Config: {}},NetworkMode: default,PortBindings: {},RestartPolicy: {Name: no,MaximumRetryCount: 0},AutoRemove: false,VolumeDriver: ,VolumesFrom: null,ConsoleSize: [50,180],CapAdd: null,CapDrop: null,CgroupnsMode: host,Dns: [],DnsOptions: [],DnsSearch: [],ExtraHosts: null,GroupAdd: null,IpcMode: private,Cgroup: ,Links: null,OomScoreAdj: 0,PidMode: ,Privileged: false,PublishAllPorts: false,ReadonlyRootfs: false,SecurityOpt: null,UTSMode: ,UsernsMode: ,ShmSize: 67108864,Runtime: runc,Isolation: ,CpuShares: 0,Memory: 0,NanoCpus: 0,CgroupParent: ,BlkioWeight: 0,BlkioWeightDevice: [],BlkioDeviceReadBps: [],BlkioDeviceWriteBps: [],BlkioDeviceReadIOps: [],BlkioDeviceWriteIOps: [],CpuPeriod: 0,CpuQuota: 0,CpuRealtimePeriod: 0,CpuRealtimeRuntime: 0,CpusetCpus: ,CpusetMems: ,Devices: [],DeviceCgroupRules: null,DeviceRequests: null,MemoryReservation: 0,MemorySwap: 0,MemorySwappiness: null,OomKillDisable: false,PidsLimit: null,Ulimits: null,CpuCount: 0,CpuPercent: 0,IOMaximumIOps: 0,IOMaximumBandwidth: 0,MaskedPaths: [/proc/asound,/proc/acpi,/proc/kcore,/proc/keys,/proc/latency_stats,/proc/timer_list,/proc/timer_stats,/proc/sched_debug,/proc/scsi,/sys/firmware],ReadonlyPaths: [/proc/bus,/proc/fs,/proc/irq,/proc/sys,/proc/sysrq-trigger]},GraphDriver: {Data: {LowerDir: /var/lib/docker/overlay2/e256f9203c6a18429e19e0d9458494cf25de028eeb086697f77f6f12bb2bb82e-init/diff:/var/lib/docker/overlay2/0351cac31df5ec6bd716f7dd314842417100097dcad45cdbf3b2b602df85ac0d/diff,MergedDir: /var/lib/docker/overlay2/e256f9203c6a18429e19e0d9458494cf25de028eeb086697f77f6f12bb2bb82e/merged,UpperDir: /var/lib/docker/overlay2/e256f9203c6a18429e19e0d9458494cf25de028eeb086697f77f6f12bb2bb82e/diff,WorkDir: /var/lib/docker/overlay2/e256f9203c6a18429e19e0d9458494cf25de028eeb086697f77f6f12bb2bb82e/work},Name: overlay2},Mounts: [],Config: {Hostname: 704c3c99bc66,Domainname: ,User: ,AttachStdin: true,AttachStdout: true,AttachStderr: true,Tty: true,OpenStdin: true,StdinOnce: true,Env: [PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin],Cmd: [/bin/bash],Image: centos,Volumes: null,WorkingDir: ,Entrypoint: null,OnBuild: null,Labels: {org.label-schema.build-date: 20210915,org.label-schema.license: GPLv2,org.label-schema.name: CentOS Base Image,org.label-schema.schema-version: 1.0,org.label-schema.vendor: CentOS}},NetworkSettings: {Bridge: ,SandboxID: 7ff17da73c9e66bbfbd41b199708eda43a0755d1e2719ef4e07234f4d241e385,HairpinMode: false,LinkLocalIPv6Address: ,LinkLocalIPv6PrefixLen: 0,Ports: {},SandboxKey: /var/run/docker/netns/7ff17da73c9e,SecondaryIPAddresses: null,SecondaryIPv6Addresses: null,EndpointID: 3674d5008409dc73853dc14b6c7627ab5d5bcaf2786df5f12c43a966613256e6,Gateway: 172.17.0.1,GlobalIPv6Address: ,GlobalIPv6PrefixLen: 0,IPAddress: 172.17.0.2,IPPrefixLen: 16,IPv6Gateway: ,MacAddress: 02:42:ac:11:00:02,Networks: {bridge: {IPAMConfig: null,Links: null,Aliases: null,NetworkID: 348aaaac8b83d35b8f2b750e66eefa696566a774d5791710e2b15e0e3d101332,EndpointID: 3674d5008409dc73853dc14b6c7627ab5d5bcaf2786df5f12c43a966613256e6,Gateway: 172.17.0.1,IPAddress: 172.17.0.2,IPPrefixLen: 16,IPv6Gateway: ,GlobalIPv6Address: ,GlobalIPv6PrefixLen: 0,MacAddress: 02:42:ac:11:00:02,DriverOpts: null}}}} ] 然后看到 ip是 172.17.0.2访问nginx指令 curl 172.17.0.2访问成功 !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.1//EN http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtdhtml xmlnshttp://www.w3.org/1999/xhtml xml:langenheadtitleTest Page for the Nginx HTTP Server on Red Hat Enterprise Linux/titlemeta http-equivContent-Type contenttext/html; charsetUTF-8 /style typetext/css/*![CDATA[*/body {background-color: #fff;color: #000;font-size: 0.9em;font-family: sans-serif,helvetica;margin: 0;padding: 0;}:link {color: #c00;}:visited {color: #c00;}a:hover {color: #f50;}h1 {text-align: center;margin: 0;padding: 0.6em 2em 0.4em;background-color: #900;color: #fff;font-weight: normal;font-size: 1.75em;border-bottom: 2px solid #000;}h1 strong {font-weight: bold;font-size: 1.5em;}h2 {text-align: center;background-color: #900;font-size: 1.1em;font-weight: bold;color: #fff;margin: 0;padding: 0.5em;border-bottom: 2px solid #000;}hr {display: none;}.content {padding: 1em 5em;}.alert {border: 2px solid #000;}img {border: 2px solid #fff;padding: 2px;margin: 2px;}a:hover img {border: 2px solid #294172;}.logos {margin: 1em;text-align: center;}/*]]*//style/headbodyh1Welcome to strongnginx/strong on Red Hat Enterprise Linux!/h1div classcontentpThis page is used to test the proper operation of thestrongnginx/strong HTTP server after it has beeninstalled. If you can read this page, it means that theweb server installed at this site is workingproperly./pdiv classalerth2Website Administrator/h2div classcontentpThis is the default ttindex.html/tt page thatis distributed with strongnginx/strong onRed Hat Enterprise Linux. It is located intt/usr/share/nginx/html/tt./ppYou should now put your content in a location ofyour choice and edit the ttroot/tt configurationdirective in the strongnginx/strongconfiguration filett/etc/nginx/nginx.conf/tt./ppFor information on Red Hat Enterprise Linux, please visit the a hrefhttp://www.redhat.com/Red Hat, Inc. website/a. The documentation for Red Hat Enterprise Linux is a hrefhttp://www.redhat.com/docs/manuals/enterprise/available on the Red Hat, Inc. website/a./p/div/divdiv classlogosa hrefhttp://nginx.net/imgsrcnginx-logo.png alt[ Powered by nginx ]width121 height32 //aa hrefhttp://www.redhat.com/imgsrcpoweredby.pngalt[ Powered by Red Hat Enterprise Linux ]width88 height31 //a/div/div/body /html 1.2、制成镜像 将刚才的bash退回到宿主机 注意如果使用exit指令退出容器时容器包括内部的镜像都停止了我们要后台运行退出使用如下指令 CtrlPQ然后制作镜像 docker commit 容器名 自定义镜像名 docker commit n1 cent-nginx:v1提交成功查看一下镜像列表 docker images可以看到我们制作好的镜像~ 1.3、启动镜像 1.3.1、启动镜像启动nginx docker run -it --name nginx1 cent-nginx:v1 /bin/bash然后在nginx1容器里查看nginx此时是没有启动的 在外部查看容器启动情况 可以看到nginx1确实在运行中。 那么想要运行nginx则还是手动启动 然后另一边再访问nginx访问成功~ docker inspect nginx1 # 查看ipcurl 172.17.0.3启动容器还得再进入内部启动nginx很麻烦~ 1.3.2、一个命令直接全部启动 docker run -d --name nginx2 cent-nginx:v1 /usr/sbin/nginx -g daemon off;解释 这里指定了nginx要做的事情 1.3.3、两种方式区别 1、nginx 启动服务 /usr/sbin/nginx 不会结束一直前台跑 2、/usr/sbin/nginx -g “daemon off;” 后面运行的命令都是容器命令由于nginx命令没有设置到path中所以全路径启动 而nginx -g这个参数是指可以在外面添加指令到nginx的配置文件中 daemon off是指nginx服务不运行在后端而是在前台运行container中的服务必须运行在前台 1.4、commit创建镜像方式的本质 原容器与commit后的镜像在文件系统上并无区别。只是把容器层原来的可写属性置成了只读。于是变成了一个不可改的镜像。 2、Dockerfile的使用 2.1、Dockerfile指令 先看这个表格 关键字作用备注FROM指定父镜像指定dockerfile基于那个image构建MAINTAINER作者信息用来标明这个dockerfile谁写的LABEL标签用来标明dockerfile的标签 可以使用Label代替Maintainer 最终都是在docker image基本信息中可以查看RUN执行命令执行一段命令 默认是/bin/sh 格式: RUN command 或者 RUN [“command” , “param1”,“param2”]CMD容器启动命令提供启动容器时候的默认命令 和ENTRYPOINT配合使用.格式 CMD command param1 param2 或者 CMD [“command” , “param1”,“param2”]ENTRYPOINT入口一般在制作一些执行就关闭的容器中会使用COPY复制文件build的时候复制文件到image中ADD添加文件build的时候添加文件到image中 不仅仅局限于当前build上下文 可以来源于远程服务ENV环境变量指定build时候的环境变量 可以在启动的容器的时候 通过-e覆盖 格式ENV namevalueARG构建参数构建参数 只在构建的时候使用的参数 如果有ENV 那么ENV的相同名字的值始终覆盖arg的参数VOLUME定义外部可以挂载的数据卷指定build的image那些目录可以启动的时候挂载到文件系统中 启动容器的时候使用 -v 绑定 格式 VOLUME [“目录”]EXPOSE暴露端口定义容器运行的时候监听的端口 启动容器的使用-p来绑定暴露端口 格式: EXPOSE 8080 或者 EXPOSE 8080/udpWORKDIR工作目录指定容器内部的工作目录 如果没有创建则自动创建 如果指定/ 使用的是绝对地址 如果不是/开头那么是在上一条workdir的路径的相对路径USER指定执行用户指定build或者启动的时候 用户 在RUN CMD ENTRYPONT执行的时候的用户HEALTHCHECK健康检查指定监测当前容器的健康监测的命令 基本上没用 因为很多时候 应用本身有健康监测机制ONBUILD触发器当存在ONBUILD关键字的镜像作为基础镜像的时候 当执行FROM完成之后 会执行 ONBUILD的命令 但是不影响当前镜像 用处也不怎么大STOPSIGNAL发送信号量到宿主机该STOPSIGNAL指令设置将发送到容器的系统调用信号以退出。SHELL指定执行脚本的shell指定RUN CMD ENTRYPOINT 执行命令的时候 使用的shell 以下是重点指令的解读~ FROM   FROM {base镜像}   必须放在DOckerfile的第一行表示从哪个baseimage开始构建MAINTAINER 可选的用来标识image作者的地方RUN RUN都是启动一个容器、执行命令、然后提交存储层文件变更。 第一层 RUN command1 的执行仅仅是当前进程一个内存上的变化而已其结果不会造成任何文件。 而到第二层的时候启动的是一个全新的容器跟第一层的容器更完全没关系自然不可能继承前一层构建过程中的内存变化。 而如果需要将两条命令或者多条命令联合起来执行需要加上。 如cd /usr/local/src wget xxxxxxxCMD   CMD的作用是作为执行container时候的默认行为容器默认的启动命令   当运行container的时候声明了command则不再用image中的CMD默认所定义的命令 一个Dockerfile中只能有一个有效的CMD当定义多个CMD的时候只有最后一个才会起作用EXPOSE EXPOSE 指令是声明运行时容器提供服务端口这只是一个声明在运行时并不会因为这个声明应用就会开启这个端口的服务。在 Dockerfile 中写入这样的声明有两个好处一个是帮助镜像使用者理解这个镜像服务的守护端口以方便配置映射另一个用处则是在运行时使用随机端口映射时也就是 docker run -P 时会自动随机映射 EXPOSE 的端口。entrypoint entrypoint的作用是把整个container变成可执行的文件且不能够通过替换CMD的方法来改变创建container的方式。但是可以通过参数传递的方法影响到container内部 每个Dockerfile只能够包含一个entrypoint多个entrypoint只有最后一个有效 当定义了entrypoint以后CMD只能够作为参数进行传递ADD COPY   把host上的文件或者目录复制到image中能够进行自动解压压缩包ENV   用来设置环境变量后续的RUN可以使用它所创建的环境变量WORKDIR   用来指定当前工作目录或者称为当前目录USER   运行RUN指令的用户VOLUME   用来创建一个在image之外的mount point 2.2、nginx镜像制作案例 首先创建一个新目录在该目录下制作 mkdir dockerfile-nginx cd dockerfile-nginx然后创建并编辑Dockerfile文件 vi Dcokerfile 文件内容如下 # Base image FROM centos:7# MAINTAINER MAINTAINER cyl# 将nginx以及pcre源代码加入镜像 ADD nginx-1.20.1.tar.gz /usr/local/src/ ADD pcre-8.45.tar.gz /usr/local/src/# 安装编译器 RUN yum install -y gcc gcc-c make openssl-devel lsof RUN useradd -s /sbin/nologin -M nginx# 指定工作目录 WORKDIR /usr/local/src/nginx-1.20.1/# 编译nginx RUN ./configure --prefix/usr/local/nginx --usernginx --groupnginx --with-http_ssl_module --with-http_stub_status_module --with-pcre/usr/local/src/pcre-8.45 make make install RUN echo daemon off; /usr/local/nginx/conf/nginx.conf# 设置环境变量 ENV PATH /usr/local/nginx/sbin:$PATH# 暴露80端口 EXPOSE 80# 容器默认启动命令 ENTRYPOINT [nginx]然后保存退出wget下载这两个源码包 wget http://nginx.org/download/nginx-1.13.2.tar.gz wget http://downloads.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gz然后开始build构建 docker build -t cent-ngx2 . # . 表示在当前目录下构建这里奇怪的是我构建完毕没有出现successfully的提示但是nginx依然构建成功可以正常运行 然后run运行并指定端口映射 docker run -d --name ngx2 -p 80:80 cent-ngx2运行成功浏览器访问linux宿主机ip端口80 2.3、查看构建历史 docker history 镜像id此镜像层基本与dockerfile文件的RUN是一一对应的。 注missing表示无法获取image id通常从docker hub下载的镜像会有这个问题 以上dockerfile中指定了启动命令前台启动假如未指定构建成功后又想要制定怎么办 为镜像指定环境变量挂载目录默认启动命令 在上一版镜像的基础上新加配置 执行 docker build -t cent-ngx3查看镜像的历史可看到比ngx2的镜像多了几个层。 镜像的缓存特性 docker会缓存已有的镜像层构建镜像时如果某镜像层已经存在就直接使用无需创建如果不希望在构建镜像时使用缓存可以在docker build命令中加上–no-cache参数。dockerfile中每一个指令都会创建一个镜像层上层依赖于下层的。无论什么时候只要某一层发生变化其上面所有层的缓存都会失效。除了构建时使用缓存docker在下载镜像时也会使用 调试dockerfile 在执行dockerfile时如果因为某种原因执行到某个指令失败了也能够得到前一个指令成功执行构建出的容器可以运行新的镜像手动运行那条失败的指令从而定位失败的原因 2.4、run VS cmd VS entrypoint RUN执行命令并创建新的镜像层常用于安装软件包CMD设置容器启动后默认执行的命令及其参数但 docker run 后跟参数时会替换忽略 CMDENTRYPOINT配置容器启动时运行的命令。 docker容器的主业 docker理念里容器启动时应当为它指定主业是什么如nginx容器主业就是nginx代理服务tomcat容器就是web服务等等 1、容器创建时必须指定主业任务如不指定则容器无事可干立即退出。 2、在dockerfile打包镜像时可以使用cmd命令来指定一个默认的主业如下 3、既然镜像里是默认主业即意味着创建容器时可以覆盖此默认命令如下 推荐的ENTRYPOINT 方式 1、镜像本身应该有稳定的主业应当指定后即不能更改用途于是引入ENTRYPOINT 2、使用ENTRYPOINT字义即容器入口它不能被run中cmd覆盖如下例 执行docker build -t nginxx:v3 . 以后使用nginxx:v3这个镜像时只能做nginx服务来使用。 更详细用法看这里 3、commit和Dockerfile的区别 Commit生成的镜像和Dockerfile有以下几点区别 Commit生成的镜像是一个完整的镜像而Dockerfile只是一个构建镜像的指令文件它只能用于构建镜像而不能用于运行容器。Commit生成的镜像可以直接运行容器而Dockerfile只能用于构建镜像不能直接运行容器。Commit生成的镜像可以直接推送到远程仓库而Dockerfile不能直接推送到远程仓库必须先构建镜像然后再推送到远程仓库。 Docker commit的缺点如下 需要在容器内操作麻烦效率低。这一点也是最重要的使用docker commit 意味着所有对镜像的操作都是黑箱操作生成的镜像也被称为黑箱镜像。其他人或者过一段时间后自己也不知道这个镜像是怎么做出来的都安装了什么。但是使用Dockerfile构建的镜像我们可以通过构建历史查看每一层做了什么。而且commit任何修改的结果仅仅是在当前层进行标记添加修改而不会改动上一层。如果使用docker commit制作镜像以及后期修改的话每一次修改都会让镜像更加臃肿一次所删除的上一层的东西并不会丢失会一直如影随形的跟着这个镜像即使根本无法访问到这会使镜像更加臃肿。 那么为什么还要学习这种方式 docker commit有一些特殊的应用场合比如被入侵后保存现场等。但是不要使用docker commmit定制镜像定制行为应该使用Dockerfile来完成Dockerfille每一步build出来的镜像正是通过docker commit 构建出来的。学习commit可以有助于我们理解dockerfile。
http://www.pierceye.com/news/402916/

相关文章:

  • 网站建设合同文百科阿里云加WordPress建站
  • 服装购物网站排名ppt制作神器
  • 长沙营销策划公司排名如何优化企业网站
  • 北京制卡厂家做卡公司北京制卡网站_北京制卡_北京 去114网wordpress 关闭注册
  • 网站建设技术优势广州天河区医院
  • python和php网站开发中国十大公司排行榜
  • 网站栅格如何建设一个外卖订餐平台网站
  • 浙江省网站建设报价群晖wordpress不成功
  • 音乐网站制作策划书网站建设公司的服务公司
  • 南昌定制网站开发多少钱手机在线网页制作
  • 无锡网站推广$做下拉去118cr高端网站建设苏州
  • 该网站未在腾讯云备案网页界面图
  • cms开源建站系统河北省建设厅管网站
  • 网站优化排名易下拉技术做官网的步骤
  • 网站备案多久服装企业 北京 网站建设
  • 网站建设(信奈辉煌电商)陕西富通建设工程有限公司网站
  • 南昌县住房和城乡建设局网站外海网站如何做网站的推广
  • 重庆网站推广报价wordpress全景图
  • 做那个的网站谁有建立什么指标体系和评价程序规范
  • 新旧网站对比全国建设厅网站
  • 有经验的番禺网站建设做球服的网站有哪些
  • 临泉建设网站互联网行业都有哪些工作
  • 甘肃省嘉峪关建设局网站做游戏交易网站
  • 校园网站做自己的广告惠州网络问政平台官网
  • 网站建设使用的什么和国外做贸易用什么网站
  • 苏州自助建站模板宁波seo快速优化
  • 做网站的可行性分析网络推广渠道公司
  • 企业网站优化兴田德润优惠汕头网络营销推广该怎么做
  • 安徽省住房和建设厅网站企业网站建设硬件
  • 网站怎样运营网站文章收录