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

网站建设制作文献广州百度网站推广

网站建设制作文献,广州百度网站推广,未经网安备案开设网站的,搭建网站干什么上一篇文章介绍了 Docker 基本概念#xff0c;其中镜像、容器和 Dockerfile 。我们使用 Dockerfile 定义镜像#xff0c;依赖镜像来运行容器#xff0c;因此 Dockerfile 是镜像和容器的关键#xff0c;Dockerfile 可以非常容易的定义镜像内容#xff0c;同时在我们后期的微… 上一篇文章介绍了 Docker 基本概念其中镜像、容器和 Dockerfile 。我们使用 Dockerfile 定义镜像依赖镜像来运行容器因此 Dockerfile 是镜像和容器的关键Dockerfile 可以非常容易的定义镜像内容同时在我们后期的微服务实践中Dockerfile 也是重点关注的内容今天我们就来一起学习它。 通过上图可以看出使用 Dockerfile 定义镜像运行镜像启动容器。 Dockerfile 概念 Docker 镜像是一个特殊的文件系统除了提供容器运行时所需的程序、库、资源、配置等文件外还包含了一些为运行时准备的一些配置参数如匿名卷、环境变量、用户等。镜像不包含任何动态数据其内容在构建之后也不会被改变。 镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本用这个脚本来构建、定制镜像那么之前提及的无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是 Dockerfile。 Dockerfile 是一个文本文件其内包含了一条条的指令(Instruction)每一条指令构建一层因此每一条指令的内容就是描述该层应当如何构建。有了 Dockerfile当我们需要定制自己额外的需求时只需在 Dockerfile 上添加或者修改指令重新生成 image 即可省去了敲命令的麻烦。 Dockerfile 文件格式 Dockerfile文件格式如下 ## Dockerfile文件格式# This dockerfile uses the ubuntu image # VERSION 2 - EDITION 1 # Author: docker_user # Command format: Instruction [arguments / command] ..# 1、第一行必须指定 基础镜像信息 FROM ubuntu# 2、维护者信息 MAINTAINER docker_user docker_useremail.com# 3、镜像操作指令 RUN echo deb http://archive.ubuntu.com/ubuntu/ raring main universe /etc/apt/sources.list RUN apt-get update apt-get install -y nginx RUN echo \ndaemon off; /etc/nginx/nginx.conf# 4、容器启动执行指令 CMD /usr/sbin/nginx Dockerfile 分为四部分基础镜像信息、维护者信息、镜像操作指令、容器启动执行指令。一开始必须要指明所基于的镜像名称接下来一般会说明维护者信息后面则是镜像操作指令例如 RUN 指令。每执行一条RUN 指令镜像添加新的一层并提交最后是 CMD 指令来指明运行容器时的操作命令。 构建镜像 docker build 命令会根据 Dockerfile 文件及上下文构建新 Docker 镜像。构建上下文是指 Dockerfile 所在的本地路径或一个URLGit仓库地址。构建上下文环境会被递归处理所以构建所指定的路径还包括了子目录而URL还包括了其中指定的子模块。 将当前目录做为构建上下文时可以像下面这样使用docker build命令构建镜像 docker build . Sending build context to Docker daemon 6.51 MB ... 说明构建会在 Docker 后台守护进程daemon中执行而不是CLI中。构建前构建进程会将全部内容递归发送到守护进程。大多情况下应该将一个空目录作为构建上下文环境并将 Dockerfile 文件放在该目录下。 在构建上下文中使用的 Dockerfile 文件是一个构建指令文件。为了提高构建性能可以通过.dockerignore文件排除上下文目录下不需要的文件和目录。 在 Docker 构建镜像的第一步docker CLI 会先在上下文目录中寻找.dockerignore文件根据.dockerignore 文件排除上下文目录中的部分文件和目录然后把剩下的文件和目录传递给 Docker 服务。 Dockerfile 一般位于构建上下文的根目录下也可以通过-f指定该文件的位置 docker build -f /path/to/a/Dockerfile . 构建时还可以通过-t参数指定构建成镜像的仓库、标签。 镜像标签 docker build -t nginx/v3 . 如果存在多个仓库下或使用多个镜像标签就可以使用多个-t参数 docker build -t nginx/v3:1.0.2 -t nginx/v3:latest . 在 Docker 守护进程执行 Dockerfile 中的指令前首先会对 Dockerfile 进行语法检查有语法错误时会返回 docker build -t nginx/v3 . Sending build context to Docker daemon 2.048 kB Error response from daemon: Unknown instruction: RUNCMD 缓存 Docker 守护进程会一条一条的执行 Dockerfile 中的指令而且会在每一步提交并生成一个新镜像最后会输出最终镜像的ID。生成完成后Docker 守护进程会自动清理你发送的上下文。 Dockerfile文件中的每条指令会被独立执行并会创建一个新镜像RUN cd /tmp等命令不会对下条指令产生影响。 Docker 会重用已生成的中间镜像以加速docker build的构建速度。以下是一个使用了缓存镜像的执行过程 $ docker build -t svendowideit/ambassador . Sending build context to Docker daemon 15.36 kB Step 1/4 : FROM alpine:3.2--- 31f630c65071 Step 2/4 : MAINTAINER SvenDowideithome.org.au--- Using cache--- 2a1c91448f5f Step 3/4 : RUN apk update apk add socat rm -r /var/cache/--- Using cache--- 21ed6e7fbb73 Step 4/4 : CMD env | grep _TCP | (sed s/.*_PORT_\([0-9]*\)_TCPtcp:\/\/\(.*\):\(.*\)/socat -t 100000000 TCP4-LISTEN:\1,fork,reuseaddr TCP4:\2:\3 \/ echo wait) | sh--- Using cache--- 7ea8aef582cc Successfully built 7ea8aef582cc 构建缓存仅会使用本地父生成链上的镜像如果不想使用本地缓存的镜像也可以通过--cache-from指定缓存。指定后将不再使用本地生成的镜像链而是从镜像仓库中下载。 寻找缓存的逻辑 Docker 寻找缓存的逻辑其实就是树型结构根据 Dockerfile 指令遍历子节点的过程。下图可以说明这个逻辑。 FROM base_image:version Dockerfile:---------- FROM base_image:version|base image| RUN cmd1 -- use cache because we found base image-----X---- RUN cmd11 -- use cache because we found cmd1/ \/ \RUN cmd1 RUN cmd2 Dockerfile:------ ------ FROM base_image:version|image1| |image2| RUN cmd2 -- use cache because we found base image---X-- ------ RUN cmd21 -- not use cache because theres no child node/ \ running cmd21, so we build a new image here/ \ RUN cmd11 RUN cmd12 ------- ------- |image11| |image12| ------- ------- 大部分指令可以根据上述逻辑去寻找缓存除了 ADD 和 COPY 。这两个指令会复制文件内容到镜像内除了指令相同以外Docker 还会检查每个文件内容校验(不包括最后修改时间和最后访问时间)如果校验不一致则不会使用缓存。 除了这两个命令Docker 并不会去检查容器内的文件内容比如 RUN apt-get -y update每次执行时文件可能都不一样但是 Docker 认为命令一致会继续使用缓存。这样一来以后构建时都不会再重新运行apt-get -y update。 如果 Docker 没有找到当前指令的缓存则会构建一个新的镜像并且之后的所有指令都不会再去寻找缓存。 简单示例 接下来用一个简单的示例来感受一下 Dockerfile 是如何用来构建镜像启动容器。我们以定制 nginx 镜像为例在一个空白目录中建立一个文本文件并命名为 Dockerfile mkdir mynginx cd mynginx vi Dockerfile 构建一个 Dockerfile 文件内容为 FROM nginx RUN echo h1Hello, Docker!/h1 /usr/share/nginx/html/index.html vi Dockerfile 这个 Dockerfile 很简单一共就两行涉及到了两条指令FROM 和 RUNFROM 表示获取指定基础镜像RUN 执行命令在执行的过程中重写了 nginx 的默认页面信息将信息替换为Hello, Docker!。 在 Dockerfile 文件所在目录执行 docker build -t nginx:v1 .命令最后有一个. 表示当前目录 构建完成之后使用 docker images 命令查看所有镜像如果存在 REPOSITORY 为 nginx 和 TAG 是 v1 的信息就表示构建成功。 docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx v1 8c92471de2cc 6 minutes ago 108.6 MB 接下来使用 docker run 命令来启动容器 docker run --name docker_nginx_v1 -d -p 80:80 nginx:v1这条命令会用 nginx 镜像启动一个容器命名为docker_nginx_v1并且映射了 80 端口这样我们可以用浏览器去访问这个 nginx 服务器http://192.168.0.54/页面返回信息 这样一个简单使用 Dockerfile 构建镜像运行容器的示例就完成了 修改容器内容 容器启动后需要对容器内的文件进行进一步的完善可以使用docker exec -it xx bash命令再次进行修改以上面的示例为基础修改 nginx 启动页面内容 docker exec -it docker_nginx_v1 bash root3729b97e8226:/# echo h1Hello, Docker neo!/h1 /usr/share/nginx/html/index.html root3729b97e8226:/# exit exit 以交互式终端方式进入 docker_nginx_v1 容器并执行了 bash 命令也就是获得一个可操作的 Shell。然后我们用h1Hello, Docker neo!/h1覆盖了 /usr/share/nginx/html/index.html 的内容。 再次刷新浏览器会发现内容被改变。 修改了容器的文件也就是改动了容器的存储层可以通过 docker diff 命令看到具体的改动。 docker diff docker_nginx_v1 ... 这样 Dockerfile 使用方式就为大家介绍完了下期为大家介绍 Dockerfile 命令的详细使用。 行动吧在路上总比一直观望的要好未来的你肯定会感 谢现在拼搏的自己如果想学习提升找不到资料没人答疑解惑时请及时加入扣群731789136里面有各种软件测试开发资料和技术可以一起交流学习哦。 最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你
http://www.zqtcl.cn/news/637514/

相关文章:

  • 网站开发有哪些语言ps做登录网站
  • 网站怎么做百度关键字搜索国外服务器做网站不能访问
  • 如何选择品牌网站建设做网站容易吧
  • 广州建网站比较有名的公司提升学历英语翻译
  • php网站开发视频教程厦门网站建设公司首选乐振
  • 网站推广项目微信小程序登陆入口
  • 建设部监理协会网站微信公众平台开发微网站
  • 莆田cms建站模板现在可以做网站么
  • windows 建网站湖北省最新消息今天
  • 手机商场网站制作在线看网站源码
  • 云南建设厅网站房地产开发资质做哪一类网站能赚钱
  • 佛山优化网站关键词创作者服务平台
  • python做网站多少钱超级商城系统
  • 网站开发pc端和手机端长沙专业个人做网站哪家好
  • 永州网站建设收费标准天长网站开发
  • 做网站分辨率多少钱装修公司10强排名
  • 营销网站建设818gx在南宁做家教兼职的网站
  • 做杂志模板下载网站网站开发产品经理招聘
  • 深圳网站创建公司小程序代理怎么样
  • 所以免费爱做网站营销网站优化推广
  • 莆田网站制作设计东莞营销专业网站建设
  • joomla建站教程北京做网站ezhixi
  • 自己可以做拼单网站吗建设企业网站有哪些
  • 张掖北京网站建设新闻事件
  • 济南网站建设(力选聚搜网络)wordpress文章中写代码
  • 网站后台忘记密码买购网十大品牌网
  • 360免费建站网页链接石家庄建设局网站怎么打不开
  • 东莞网站建做俄罗斯外贸的网站
  • 基于vue.js旅游网站开发网络营销的主要形式有建设网站
  • 医院网站建设要素国外电商网站