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

网站平台构建网页设计实训总结报告3000字

网站平台构建,网页设计实训总结报告3000字,15年做啥网站致富,wordpress移动端代码近年来 Docker 非常火#xff0c;想要玩好 Docker 的话 Dockerfile 是绕不开的#xff0c;这就好比想要玩好 Linux 服务器绕不开 shell 道理是一样的。 今天我们就来聊一聊 Dockerfile 怎么写#xff0c;那些指令到底是什么意思。 前言 一、先来看一个简单的 Dockerfile #这… 近年来 Docker 非常火想要玩好 Docker 的话 Dockerfile 是绕不开的这就好比想要玩好 Linux 服务器绕不开 shell 道理是一样的。 今天我们就来聊一聊 Dockerfile 怎么写那些指令到底是什么意思。 前言 一、先来看一个简单的 Dockerfile #这个Dockerfile作用是打一个python3项目环境FROM python:3-alpineWORKDIR /appADD . /appRUN pip3 install -r requirements.txt -i https://pypi.douban.com/simpleCMD [python3, main.py]#这个Dockerfile作用Dockerfile部署django项目FROM centos:7MAINTAINER hailiADD requeriments.txt /homeWORKDIR /homeRUN yum update yum -y install mysql yum -y install python3-pip pip3 install -r requirements.txt ADD autoTest /home/WORKDIR /home/autoTestEXPOSE 8000ENTRYPOINT uwsgi --ini uwsgi.ini 二、Dockerfile 编写规则 指令大小写不敏感为了区分习惯上用大写 Dockerfile 非注释行第一行必须是 FROM 文件名必须是 Dockerfile Dockerfile 指定一个专门的目录为工作空间 所有引入映射的文件必须在这个工作空间目录下 Dockerfile 工作空间目录下支持隐藏文件(.dockeringore) (.dockeringore)作用是用于存放不需要打包导入镜像的文件根目录就是工作空间目录 每一条指令都会生成一个镜像层镜像层多了执行效率就慢能写成一条指定的就写成一条 三、Dockerfile 指令详解 1.FROM基础镜像 1.1、FROM是Dockerfile文件开篇第一个非注释行代码 1.2、用于为镜像文件构建过程指定基础镜像后续的指令都基于该基础镜像环境运行 1.3、基础镜像可以是任何一个镜像文件 1.4、docker build 会在docker宿主机上查找指定的文件如未找到会自动去Docker Hub Registry上拉取 1.5、如果没找到对应的镜像就会返回错误信息 2.MAINTAINER镜像作者信息 2.1、废弃了使用LABLE替代 3.LABLE镜像描述信息 3.1、LABLE authorhaili 4.COPY从 Docker 宿主机复制文件至创建的新镜像文件 4.1、COPY src dest4.2、COPY [src,.... dest]4.3、src要复制的源文件或目录支持使用通配符 1、src必须是build上下文中的路径不能是其父目录路径 2、如果src是目录则其内部文件和子目录都会被递归复制但是src目录本身不会被复制 3、如果指定了多个src,或者src中使用了通配符则dest必须是一个目录且必须以/结尾4.4、dest目标路径即正在创建的images的文件系统路径 1、建议使用绝对路径否则COPY指定以WORKDIR为其实路径 2、如果dest不存在将会被自动创建包括其父目录路径一起创建4.5、复制文件 COPY testFile /mnt4.6、复制目录 COPY testDir /mnt/testDir 1、testDir下所有文件和目录都会被递归复制     2、目标路径要写testDir否则会复制到/mnt下 5.ADD类似于 COPY 指令ADD 支持 tar 文件和 URL 路径 ​​​​​​​​​​​​​​ 5.1、ADD src dest5.2、ADD [src,.... dest]5.3、如果src为URL切dest不以/结尾则src指定的文件将被下载并直接被创建为fimename如果dest以/结尾则文件名URL指定的文件将被下载并保存为dest/fimename5.4、如果src是一个压缩文件(tar),会被解压为一个目录但是通过URL下载的tar文件不会被解压5.5、如果是多个src或者是同一个src使用了通配符则dest必须是以/结尾的目录如果dest不以/结尾则src会被作为一个普通文件,src内容讲被写入到dest 6.WORKDIR用于为 Dockerfile 中所有的 RUN、CMD、ENTRYPOINT、COPY、ADD 指定设定工作目录 ​​​​​​​ 6.1、WORKDIR /mnt如果目录不存在会自动创建包括他的父目录6.2、一个Dockerfile中WORKDIR可以出现多次其路径也可以为相对路径,相对路径是基于前一个WORKDIR路径6.3、WORKDIR也可以调用ENV指定的变量6.4举例 from python:latest workdir /mnt run touch a.txt workdir /usr     run touch b.txt 7.VOLUME数据卷用于在 image 中创建挂载点目录以挂载 Docker host 上的卷或者其他容器上的卷 ​​​​​​​ 7.1、VOLUM mount_point7.2、VOLUM [mount_point1,mount_point2]7.3、如果挂载点目录下有文件存在docker run命令会在卷挂载完成后将所有文件复制到容器中 8.EXPOSE为容器打开指定的监听端口以实现与外部通信 ​​​​​​​ 8.1、EXPOSE port /portocol 1、port端口号 2、/portocol协议类型默认为TCP协议 EXPOSE 8080/tcp 8081/udp8.2、不会直接对外暴露这里的端口只有在run的时候加上-P(大写)才会将EXPOSE的端口暴露出去 9.ENV用于为镜像定义所需的环境变量可以被 Dockerfile 文件中其他命令调用(ENV、ADD、COPY、RUN、CMD) ​​​​​​​ 9.1、ENV key value 1、key之后的所有内容都会被视为value,因此一次只能设置一个变量 9.2、ENV keyvalue 1、可以设置多个变量每个keyvalue键值对为一个变量 2、如果value中包含空格需要用反斜杠转义也可以对value加引号进行标识反斜杠也可以用于续行9.3、调用格式$variable_name 或 ${variable_name}9.4、定义多个变量建议使用第二种方式以便在同一层中完成9.5、举例 ENV DOC_DIR/mnt/doc COPY index.html ${DOC_DIR:-/mnt/doc} #-如果DOC_DIR不存在则使用-后面的默认值     #如果DOC_DIR存在则使用后面的值 10.RUNdocker build 镜像构建的时候需要执行的 shell 命令默认/bin/sh -c运行 ​​​​​​​ 10.1、docker build过程中需要执行的命令10.2、RUN是在镜像构建完成之后运行结束10.3、RUN执行的命令只能基于基础镜像的命令执行之前先要确定基础镜像是否有该命令10.4、一个Dockerfile可以写多个RUN 语法一、RUN command1 command2.... 1、通常是shell命令且以/bin/sh -c来运行它此时运行为shell的子进程 2、进程在容器中的PID!1不能接收unix信号当使用docker stop 将无法接收到 3、RUN echo test_demo a.txt 此时可以使用shell特性 语法二、RUN [executable,param1param2] 1、executable为要运行的命令 2、param1为命令运行的参数 3、不会以/bin/sh -c运行(非shell子进程)因此不支持shell操作符如变量替换和通配符(?,*等) 4、如果运行命令需要依赖shell特性可以增加参数手动启动为shell的子进程 RUN [/bin/bash,-c,executable,param1]          5、list中的参数要使用双引号 11.CMD启动容器指定默认要运行的程序或命令默认/bin/sh -c运行 ​​​​​​​ 11.1、docker run过程中需要执行的命令11.2、CMD运行结束后容器就将终止11.3、CMD指定的命令将可以被 docker run 最后面的命令覆盖11.4、一个Dockerfile写多个CMD只有最后一个CMD会生效 语法一、CMD command 1、通常是shell命令且以/bin/sh -c来运行它此时运行为shell的子进程能使用shell操作符 2、进程在容器中的PID!1不能接收unix信号当使用docker stop 将无法接收到 3、CMD /bin/httpd -f -h ${httpd} 此时在运行容器的时候加-it参数无法进入交互式模式需要使用docker exec进入交互模式 语法二、CMD [executable,param1,param2] 1、不会以/bin/sh -c运行(非shell子进程)因此不支持shell操作符如变量替换和通配符(?,*等) 2、如果运行命令需要依赖shell特性可以增加参数手动启动为shell的子进程 CMD [/bin/bash,-c,executable,param1,param2](有问题不能启动容器) 语法三、CMD [param1,param2]           1、需要结合ENTRYPOINT指令提供默认参数使用 12.ENTRYPOINT类型 CMD 指令的功能用于为容器指定默认运行程序或命令 ​​​​​​​ 1、与CMD不同的是由ENTRYPOINT启动的程序不会被docker run命令行指定的参数覆盖这些命令行参数会被当做参数传递给ENTRYPOINT指定的程序2、docker run命令的 --entrypoint选项参数可以覆盖ENTRYPOINT指令指定的程序3、一个Dockerfile中可以有多个ENTRYPOINT但是只有最后一个会生效4、ENTRYPOINT主要用于shell作为启动其他进程的父进程后面跟的参数被当成子进程来启动 语法一ENTRYPOINT command    语法二ENTRYPOINT  [/bin/bash,param1,param2] 13.CMD 和 ENTRYPOINT 同时存在 Dockerfile 中 ​​​​​​​ 1、CMD的值会当做参数传递给ENTRYPOINT2、实现使用shell子进程启动httpd3、如果docker run再传入参数是传给ENTRYPOINT的因为ENTRYPOINT有自己的参数此时CMD参数会被ducker run后面跟的参数覆盖并不是覆盖ENTRYPOINT的参数要覆盖ENTRYPOINT的参数需要使用--entrypoint选项 CMD [/bin/httpd/,-f] ENTRYPOINT /bin/bash -c -h 通过传参启动容器 FROM python:latest LABLE authhaili ENV NGX_DOC_ROOT/data/web/html ADD entrypoint.sh /bin/ CMD [/usr/sbin/nginx,-g,daemon off;] ENTRYPOINT [/bin/sh,-c,/bin/entrypoint.sh]    1、先执行ENTRYPOINT然后讲CMD的值当做参数传给ENTRYPOINT进行执行 14.USER指定运行 image 时和 Dockerfile 中任何 RUN、CMD、ENTRYPOINT 指令指定的程序的用户 ​​​​​​​ 1、使用用户名或者UID2、默认情况下container的运行身份为root用户3、USER UID | user_name4、UID 和 user_name必须存在/etc/passwd当中否则会报错 15.HEALTHCHECK健康检查定义一个命令用于检查主进程工作状态是否健康 ​​​​​​​ 15.1、HEALTHCHECK参数 1、--intervalDURATION(default 30s) 健康检查间隔时间 2、--timeoutDURATION(default 30s) 超时时间 3、--start-periodDURATION(default 0s) 容器启动多久后执行健康检查 4、--retriesN(default 30s) 检测次数15.2、检查结果 0成功 1失败 2预留字段 15.3、举例     HEALTHCHECK --interval5m --timeout5s CMD curl -f http://localhost:8080 ||exit1 16.SHELL指定运行 RUN、CMD、ENTRYPOINT 的 shell 程序 17.OPSIGNAL给主进程发送信号 18.ARGdocker build 过程中的参数 ​​​​​​​ 18.1、定义pyton镜像作者通过参数传入 FROM python ARG authorlatest LABLE author${author} 18.2、使用 docker build --build-arg authorhaili    18.3、常用在docker build 过程中替换参数19.ONBUILD用于在 Dockerfile 中定义一个触发器​​​​​​​ 19.1、Dockerfile1中加一个ONBUILD add file当docker build -ttestpython Dockerfile1的时候ONBUILD指令不会被执行,Dockerfile2中FROM testpython(Dockerfile1构建后生成的镜像)当运行docker build -ttest Dockerfile2的时候Dockerfile1中的ONBUILD add file会被执行19.2、Dockerfile用于build镜像文件此镜像文件可以作为base image被另外一个Dockerfile作为FROM参数使用并以之构建新的镜像文件19.3、在后面这个Dockerfile中的FROM指令在build过程中被执行时将触发创建其base image的Dockerfile中ONBUILD指定定义的触发器19.4、尽管任何指令都可以注册为触发器指令但是ONBUILD不能自我嵌套且不会触发FROM和MAINTAINER指令19.5、使用包含ONBUILD指令的Dockerfile构建镜像应该使用特殊标签如python:1.0-onbuild19.6、ONBUILD指令中使用ADD COPY指令要格外小心因为新构建过程山下文缺少指定的源文件就会
http://www.eeditor.cn/news/125421/

相关文章:

  • 深圳做网站推荐哪家公司好不动产登记门户网站建设方案
  • 企业网站能自己建设吗做网站大概要多少钱
  • 做网站图标的软件网站开发的方式
  • 自建个人网站四川广汇建设有限公司网站
  • 网站倒计时代码在国外做网站推广
  • 网站制作关键词seo一个关键词多少钱
  • 合肥网站建怎样推广海外网站
  • 聊城网站案例中企动力工作两个月感受
  • 响水建设局网站软件开发定制app
  • 环保局 网站建设网站开发与设计实验报告
  • 用nas做网站贵州最新消息今天
  • 平湖网站开发关镇铨装修到底怎样
  • 无锡网站制作 高端网站定制网页制作软件安卓版
  • 企业网站总结wordpress搜索标题
  • 网站搭建学什么软件大连高新园区
  • 免费网站建设制作视频企业简介模板ppt免费
  • wordpress如何做网站广州网站开发棋牌
  • 推广网站有效的方法网站seo优化加推广
  • 佛山网站排名提升wordpress commer
  • 杭州微网站建设公司秦皇岛网站团队
  • 学校网站建设策划书模板共享ip网站 排名影响
  • 网站建设设计理念wordpress 漂亮主题
  • 网站 根目录 虚拟目录网络运营公司的经营范围
  • aspx网站模板平面网页设计
  • 运输 织梦网站模板江门网站优化
  • 汉中免费做网站公司怎么用ftp修改网站
  • 温州做外贸网站百度关键词seo推广
  • 做网站人员配置制作h5
  • 外贸服装网站开发asp网站部署
  • HTML做网站的书籍镇江网站建设