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

建网站和建网店的区别网站建设需求调研表

建网站和建网店的区别,网站建设需求调研表,wordpress inerhtml,有关做生态环境的官方网站dockerfile#xff08;重点#xff09; 大家想想#xff0c;Nginx#xff0c;tomcat#xff0c;mysql 这些镜像都是哪里来的#xff1f;官方能写#xff0c;我们不能写吗#xff1f; 我们要研究自己如何做一个镜像#xff0c;而且我们写的微服务项目打包上云部署重点 大家想想Nginxtomcatmysql 这些镜像都是哪里来的官方能写我们不能写吗 我们要研究自己如何做一个镜像而且我们写的微服务项目打包上云部署docker 就是最方便的。 微服务打包成镜像任何装了 docker 的地方都可以下载使用极其方便。 流程开发应用 编写 dockerfile 打包为镜像 上传到仓库私有仓库公司内部公有仓库 dockerhub 下载镜像 启动运行。 还可以方便移植 什么是 dockerfile dockerfile 是一种用于定义和构建 docker 镜像的文本文件。它包含一系列的指令和参数用于描述镜像的构建过程包括基础映像、软件包安装、文件拷贝、环境变量设置等。 通过编写 dockerfile可以将应用程序、环境和依赖项打包成一个独立的容器镜像使其可以在不同的环境和平台上运行实现应用程序的可移植性和可扩展性。 dockerfile 的基本结构包括以下几个部分 基础映像Base Image使用 FROM 指令指定基础映像作为构建镜像的起点。基础映像通常包含了操作系统和一些预装的软件和工具。构建过程指令使用一系列指令来描述构建过程例如 RUN 用于执行命令和安装软件包COPY 用于拷贝文件和目录ADD 用于拷贝和提取文件WORKDIR 用于设置工作目录等等。容器启动指令使用 CMD 或 ENTRYPOINT 指令来定义容器启动时要执行的命令也就是默认的容器执行命令。 通过编写 dockerfile可以自定义构建过程选择所需的软件和配置以及设置环境变量、暴露端口等。dockerfile 的语法简单且易于理解使得镜像的构建过程变得可重复和可维护。 总的来说dockerfile 是定义和构建 docker 镜像的文本文件通过编写指令和参数来描述镜像的构建过程和配置以实现应用程序的打包和部署。它是使用 docker 进行容器化开发和部署的重要工具。 构建步骤 编写 dockerfile 文件docker build 构建镜像docker run 镜像 dockerfile 构建过程 基础知识 每条保留字指令都必须为大写字母且后面要跟随至少一个参数指令按照从上到下顺序执行# 表示注释每条指令都会创建一个新的镜像层并对镜像进行提交 流程 docker 从基础镜像运行一个容器执行一条指令并对容器做出修改执行类似 docker commit 的操作提交一个新的镜像层docker 再基于刚提交的镜像运行一个新容器执行 dockerfile 中的下一条指令直到所有指令都执行完成 说明 从应用软件的角度来看dockerfiledocker 镜像与 docker 容器分别代表软件的三个不同阶段。 dockerfile 是软件的原材料代码docker 镜像则是软件的交付品.apkdocker 容器则是软件的运行状态客户下载安装执行 dockerfile 面向开发docker 镜像成为交付标准docker 容器则涉及部署与运维三者缺一不可 dockerfile需要定义一个 dockerfiledockerfile 定义了进程需要的一切东西。dockerfile 涉及的内容包括执行代码或者是文件、环境变量、依赖包、运行时环境、动态链接库、操作系统的发行版、服务进程和内核进程当引用进行需要和系统服务和内核进程打交道这时需要考虑如何设计 namespace 的权限控制等等。docker镜像在 dockerfile 定义了一个文件之后docker build 时会产生一个 docker 镜像当运行 docker 镜像时会真正开始提供服务docker容器容器是直接提供服务的。 dockerfile 指令 关键字 FROM # 基础镜像当前新镜像是基于哪个镜像的 MAINTAINER # 镜像维护者的姓名混合邮箱地址 RUN # 容器构建时需要运行的命令 EXPOSE # 当前容器对外保留出的端口 WORKDIR # 指定在创建容器后终端默认登录的进来工作目录一个落脚点 ENV # 用来在构建镜像过程中设置环境变量 ADD # 将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包 COPY # 类似ADD拷贝文件和目录到镜像中 VOLUME # 容器数据卷用于数据保存和持久化工作 CMD # 指定一个容器启动时要运行的命令dockerFile中可以有多个CMD指令但只有最后一个生效 ENTRYPOINT # 指定一个容器启动时要运行的命令和CMD一样 ONBUILD # 当构建一个被继承的DockerFile时运行命令父镜像在被子镜像继承后父镜像的ONBUILD被触发编写 dockerfile dockerhub 中99%的镜像都是通过在 base 镜像Scratch中安装和配置需要的软件构建出来的 Scratch 镜像很赞它简洁、小巧而且快速它没有 bug、安全漏洞、延缓的代码或技术债务。除了被 docker 添加了 metadata 之外它基本上是空的。 我们在使用 dockerfile 构建 docker 镜像时一种方式是使用官方预先配置好的容器镜像。优点是我们不用从头开始构建节省了很多工作量但付出的代价是需要下载很大的镜像包。 如果我们的需求是在构建一个符合我们实际业务需求的 docker 镜像的前提下确保镜像尺寸尽可能的小应该怎么做呢 思路是使用空镜像 scratch可以说是真正的从零开始构建属于自己的镜像镜像的第一层 发布一个自己编写的 centos 由于阿里云官方的 centos 是不完整的很多命令都没有例如 vim、ipconfig 等我们自定义一个 centos 镜像让它能够拥有这些命令 # dockerfile文件名字可以任意取最好为Dockerfile vim Dockerfile编写 dockerfile 如下 FROM centos7.9.2009 MAINTAINER akuya123456qq.com# 配置环境以及工作目录 ENV MYPATH /usr/local WORKDIR $MYPATH# 安装vim、ipconfig等命令 RUN yum -y install vim RUN yum -y install net-tools# 暴露端口 EXPOSE 80CMD echo $MYPATH CMD echo ---akuya--- CMD /bin/bash由于最新版 centos8 有 bug故使用 centos7.9版本 根据 dockerfile 构建镜像 docker build .参数 -f等价于--file指定 dockerfile 文件-t等价于--tag指定输出的镜像文件名:版本号 命令最后一定要加一个. # 构建镜像命令 docker build -f Dockerfile -t mycentos:1.0 .[rootiZbp15293q8kgzhur7n6kvZ home]# docker build -f Dockerfile -t mycentos:1.0 . [] Building 54.3s (8/8) FINISHED docker:default [internal] load build definition from Dockerfile 0.0s transferring dockerfile: 282B 0.0s [internal] load metadata for docker.io/library/centos:7.9.2009 15.7s [internal] load .dockerignore 0.0s transferring context: 2B 0.0s [1/4] FROM docker.io/library/centos:7.9.2009sha256:9d4bcbbb213dfd745b58be38b13b996ebb5ac315fe75711bd618426a630e0987 10.0s resolve docker.io/library/centos:7.9.2009sha256:9d4bcbbb213dfd745b58be38b13b996ebb5ac315fe75711bd618426a630e0987 0.0s sha256:9d4bcbbb213dfd745b58be38b13b996ebb5ac315fe75711bd618426a630e0987 1.20kB / 1.20kB 0.0s sha256:dead07b4d8ed7e29e98de0f4504d87e8880d4347859d839686a31da35a3b532f 529B / 529B 0.0s sha256:eeb6ee3f44bd0b5103bb561b4c16bcb82328cfe5809ab675bb17ab3a16c517c9 2.75kB / 2.75kB 0.0s sha256:2d473b07cdd5f0912cd6f1a703352c82b512407db6b05b43f2553732b55df3bc 76.10MB / 76.10MB 6.1s extracting sha256:2d473b07cdd5f0912cd6f1a703352c82b512407db6b05b43f2553732b55df3bc 3.4s [2/4] WORKDIR /usr/local 2.2s [3/4] RUN yum -y install vim 21.2s [4/4] RUN yum -y install net-tools 3.4s exporting to image 1.7s exporting layers 1.7s writing image sha256:1e7fb59b8a162a54a01bc41930d654d7d474cbd7ade3d110f12d95727e1d193f 0.0s naming to docker.io/library/mycentos:1.0 0.0s [rootiZbp15293q8kgzhur7n6kvZ home]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE mycentos 1.0 1e7fb59b8a16 About a minute ago 708MB centos latest 5d0da3dc9764 2 years ago 231MB根据这个镜像运行容器后发现并没有打印出目录/usr/local和---akuya---这是因为 CMD 指令如果存在多个只有最后一个会被执行 docker history 查看镜像的变更历史 如果你下载了一个镜像报错了或者你想查看一些构建逻辑使用 docker history [rootiZbp15293q8kgzhur7n6kvZ home]# docker history mycentos:1.0 IMAGE CREATED CREATED BY SIZE COMMENT 1e7fb59b8a16 7 minutes ago CMD [/bin/sh -c /bin/bash] 0B buildkit.dockerfile.v0 missing 7 minutes ago CMD [/bin/sh -c echo \---akuya---\] 0B buildkit.dockerfile.v0 missing 7 minutes ago CMD [/bin/sh -c echo $MYPATH] 0B buildkit.dockerfile.v0 missing 7 minutes ago EXPOSE map[80/tcp:{}] 0B buildkit.dockerfile.v0 missing 7 minutes ago RUN /bin/sh -c yum -y install net-tools # bu… 208MB buildkit.dockerfile.v0 missing 7 minutes ago RUN /bin/sh -c yum -y install vim # buildkit 296MB buildkit.dockerfile.v0 missing 7 minutes ago WORKDIR /usr/local 0B buildkit.dockerfile.v0 missing 7 minutes ago ENV MYPATH/usr/local 0B buildkit.dockerfile.v0 missing 7 minutes ago MAINTAINER akuya123456qq.com 0B buildkit.dockerfile.v0 missing 2 years ago /bin/sh -c #(nop) CMD [/bin/bash] 0B missing 2 years ago /bin/sh -c #(nop) LABEL org.label-schema.sc… 0B missing 2 years ago /bin/sh -c #(nop) ADD file:b3ebbe8bd304723d4… 204MB 项目中编写 dockerfile 思路 基于一个空的镜像下载需要的环境 ADD执行环境变量的配置 ENV执行一些Linux命令 RUN日志 CMD端口暴露 EXPOSE挂载数据卷 VOLUMES 这个过程就是你手动部署项目的过程你通过 docker 可以再未来实现自动化构建。 CMD 与 ENTRYPOINT 区别 两个命令都是指定一个容器启动时要运行的命令但二者有很大的区别 CMD容器内有多个 CMD 指令时只有最后一个 CMD 指令会生效而如果在执行docker run命令时携带了其它命令将会覆盖掉所有 dockerfile 的 CMD 指令 ENTRYPOINTENTRYPOINT 的命令不容易被覆盖。在docker run命令中提供的任何参数都会作为 ENTRYPOINT 命令的参数传递。 当两者组合使用时那么 CMD 将作为 ENTRYPOINT 的默认参数如果在docker run命令中提供了参数它将覆盖 CMD 并作为 ENTRYPOINT 的参数传递。 例如 FROM centos CMD [echo, hello world]运行容器时可以覆盖默认的 CMD docker build -f Dockerfile -t cmdtest . docker run cmdtest /bin/bash结果不会打印出hello world 使用 ENTRYPOINT 指令 FROM centos ENTRYPOINT [echo, hello ] CMD [world]运行容器时可以传递参数给 ENTRYPOINT docker build -f Dockerfile -t entrytest . docker run entrytest # 输出hello world docker run entrytest akuya # 输出hello akuya练习构建一个 tomcat编写首页 使用空镜像从零构建一个完整的 tomcat 一般一个项目都在一个文件夹中我们只需要在项目目录下编辑一个 Dockerfile 文件即可 当执行docker bulid指定时如果没有-f参数指定 dockerfile 文件会默认寻找项目目录下的 Dockerfile 来构建镜像所以我们名字通常设定为Dockerfile 准备工作准备 tomcat 和 jdk 的 jar 包创建Dockerfile文件以及一个任意内容的readme.md即可 编辑Dockerfile内容如下 FROM centos:7.9.2009 MAINTAINER akuya123456qq.com# 宿主机目录下文件拷贝到容器内文件如果不是绝对路径会默认寻找 dockerfile 文件的同级目录下所以最好所有文件都在同一个目录下 COPY readme.md /usr/local/readme.md# 添加我们自己的安装包 ADD jdk-8u11-linux-x64.tar.gz /usr/local ADD apache-tomcat-9.0.22.tar.gz /usr/local#安装vim编辑器 RUN yum -y install vim# 配置工作目录 ENV MYPATH /usr/local WORKDIR $MYPATH# 配置环境变量 ENV JAVA_HOME /usr/local/jdk1.8.0_11 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.22 ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.22 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin# 暴露端口 EXPOSE 8080# 启动的时候自动运行tomcat打印日志 CMD /usr/local/apache-tomcat-9.0.22/bin/startup.sh tail -F /usr/local/apache-tomcat-9.0.22/bin/logs/catalina.out构建并运行 # 构建不指定 dockerfile 文件会自动寻找该目录下的 Dockerfile docker build -t mytomcat . # 运行 docker run -d -p 8080:8080 --name mytomcat \ -v /root/mytomcat/test:/usr/local/apache-tomcat-9.0.22/webapps/test \ -v /root/mytomcat/logs:/usr/local/apache-tomcat-9.0.22/logs \ --privilegedtrue \ mytomcat运行成功后打开浏览器输入ip地址:8080即可访问到 tomcat 主页 在我们自定义的 tomcat 服务器中上传一个项目在本地挂载目录丢一个项目上去。 首先进入到我们挂载的宿主机目录下/root/mytomcat下 [rootiZbp15293q8kgzhur7n6kvZ mytomcat]# cd /root/mytomcat/ [rootiZbp15293q8kgzhur7n6kvZ mytomcat]# ll total 8 drwxr-xr-x 2 root root 4096 Mar 21 14:45 logs drwxr-xr-x 2 root root 4096 Mar 21 14:45 test在 test 目录下丢项目即可 示例编写一个index.html !DOCTYPE html html langen headmeta charsetUTF-8titledocker test/title /head bodyh1----------hello akuya----------------/h1brh2my docker tomcattest/h2 /body scriptconsole.log(my docker tomcat log) /script /html浏览器访问ip地址:8080/test/ 发布镜像 公有仓库DockerHub 目前 DockerHub 网址无法访问了解即可 注册dockerhub https://hub.docker.com/signup需要有一个账号 发布镜像遵循以下几个步骤 登录用户 docker login参数 -u等价于--username登录所需的用户名-p等价于--password密码 给要上传的镜像打上标签 docker tag 镜像id 镜像名:版本号上传镜像 docker push 镜像名:版本号私有仓库一般都是公司内部自行搭建的步骤跟上述相同
http://www.w-s-a.com/news/226449/

相关文章:

  • 桂林北站离阳朔多远贵州省建设厅住房和城乡建设官网二建考试
  • 浙江省建设厅 网站是多少wordpress淘宝客一键
  • 网站流量少怎么做5个不好的网站
  • 随州网站建设有限公司个人申请注册公司需要多少钱
  • 东莞做商城网站建设wordpress批量下载外链图片
  • 新网站建设运营年计划书仓山区建设局招标网站
  • 网站开发天津网站建设项目组织图
  • 网站开发认证考试石家庄高端网站开发
  • 网站建设第一步怎么弄站酷网页
  • 设备网站模板江西的赣州网站建设
  • 邯郸营销型网站国际招聘人才网
  • hexo wordpress 主题织梦网站优化教程
  • 网站建设方案及上海市建设协会网站
  • 轴承外贸网站怎么做南宁网站排名优化公司哪家好
  • 沈阳企业网站建站郴州优化公司
  • cctv5+手机在线直播观看seo关键词排名优化方法
  • 网站建设公司怎么谈单怎么开通微信小程序商店
  • 深圳做网站案例一个服务器可以备案几个网站
  • 网络营销策划名词解释泉州百度推广排名优化
  • 一键生成网站的软件互联网营销师是干什么
  • 网站后台管理水印怎么做手机优化设置
  • 哪个网站做图文素材多wordpress++优化
  • 建设网站就选用什么样的公司网站类型分类有哪些
  • 找平面设计师网站网站建设须知
  • 建设联结是不是正规网站wordpress 微博同步
  • 瑞安微网站建设广州推广
  • 做旅游宣传网站的流程图中国企业集成网电子商务
  • 开发商城网站开发成交功能网站
  • 网站建设公司专业公司排名搭建网站的企业
  • 网站建设难吗海南智能网站建设报价