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

可信网站认证 代理商免费傻瓜室内装修设计软件

可信网站认证 代理商,免费傻瓜室内装修设计软件,宁波正规seo企业优化,晋中网站公司镜像是 Docker 容器的基石#xff0c;容器是镜像的运行实例#xff0c;有了镜像才能启动容器#xff1b; 如果只是使用镜像#xff0c;直接通过 docker 命令下载和运行就可以了#xff0c;但如果我们想创建自己的镜像#xff0c;或者想理解 Docker 为什么是轻量级的容器是镜像的运行实例有了镜像才能启动容器 如果只是使用镜像直接通过 docker 命令下载和运行就可以了但如果我们想创建自己的镜像或者想理解 Docker 为什么是轻量级的则要讨论镜像的内部结构 一 、hello-world 镜像 hello-world 是 Docker 官方提供的一个镜像通常用来验证 Docker 是否安装成功 使用 docker pull 从 Docker Hub 下载它 用 docker images 命令查看镜像的信息 通过 docker run 运行 通常来说镜像能提供一个基本的操作系统环境用户可以根据需要安装和配置软件这样的镜像我们称作 base 镜像 二、base 镜像 base 镜像有两层含义不依赖其他镜像从 scratch 构建其他镜像可以之为基础进行扩展 base 镜像提供的是最小安装的 Linux 发行版 故能称作 base 镜像的通常都是各种 Linux 发行版的 Docker 镜像比如 Ubuntu, Debian, CentOS 等 我们以 CentOS 为例考察 base 镜像包含哪些内容 下面是 CentOS 镜像的 Dockerfile 的内容 第二行 ADD 指令添加到镜像的 tar 包就是 CentOS 7 的 rootfs。在制作镜像时这个 tar 包会自动解压到 / 目录下生成 /dev, /porc, /bin 等目录 Linux 操作系统由内核空间和用户空间组成 内核空间是 kernelLinux 刚启动时会加载 bootfs 文件系统之后 bootfs 会被卸载掉 用户空间的文件系统是 rootfs包含我们熟悉的 /dev, /proc, /bin 等目录 对于 base 镜像来说底层直接用 Host 的 kernel自己只需要提供 rootfs 就行了 不同 Linux 发行版的区别主要就是 rootfs所以 Docker 可以同时支持多种 Linux 镜像模拟出多种操作系统环境 Docker 支持通过扩展现有镜像创建新的镜像; 实际上Docker Hub 中 99% 的镜像都是通过在 base 镜像中安装和配置需要的软件构建出来的 三、镜像的分层结构 我们现在构建一个新的镜像Dockerfile 如下: ① 新镜像不再是从 scratch 开始而是直接在 Debian base 镜像上构建。 ② 安装 emacs 编辑器。 ③ 安装 apache2。 ④ 容器启动时运行 bash 构建过程如下图所示: 可以看到新镜像是从 base 镜像一层一层叠加生成的。每安装一个软件就在现有镜像的基础上增加一层; Docker 镜像采用这种分层结构,最大的一个好处就是 - 共享资源; 那么就有个问题如果多个容器共享一份基础镜像当某个容器修改了基础镜像的内容比如 /etc 下的文件这时其他容器的 /etc 是否也会被修改答案是不会修改会被限制在单个容器内。 接下来我们来解释一下原因 可写的容器层 当容器启动时一个新的可写层被加载到镜像的顶部这一层通常被称作“容器层”“容器层”之下的都叫“镜像层” 所有对容器的改动 - 无论添加、删除、还是修改文件都只会发生在容器层中只有容器层是可写的容器层下面的所有镜像层都是只读的 在容器层中用户看到的是一个叠加之后的文件系统 添加文件在容器中创建文件时新文件被添加到容器层中。 读取文件 在容器中读取某个文件时Docker 会从上往下依次在各镜像层中查找此文件。一旦找到打开并读入内存。 修改文件 在容器中修改已存在的文件时Docker 会从上往下依次在各镜像层中查找此文件。一旦找到立即将其复制到容器层然后修改之。 删除文件 在容器中删除文件时Docker 从上往下依次在镜像层中查找此文件。找到后会在容器层中记录下此删除操作 只有当需要修改时才复制一份数据这种特性被称作 Copy-on-Write。可见容器层保存的是镜像变化的部分不会对镜像本身进行任何修改这样就解释了我们前面提出的问题容器层记录对镜像的修改所有镜像层都是只读的不会被容器修改所以镜像可以被多个容器共享 四、构建镜像的两种方式 几乎所有常用的数据库、中间件、应用软件等都有现成的 Docker 官方镜像或其他人和组织创建的镜像我们只需要稍作配置就可以直接使用当然某些情况下我们也不得不自己构建镜像Docker 提供了两种构建镜像的方法 1. docker commit 命令 2. Dockerfile 构建文件 方式一docker commit方式构建镜像 docker commit 命令是创建新镜像最直观的方法其过程包含三个步骤 1.  运行容器 2. 修改容器 3. 将容器保存为新的镜像 举个例子在 ubuntu base 镜像中安装 vi 并保存为新镜像 第一步 运行容器:终端执行命令 docker run -it ubuntu 具体效果如下所示 第二步安装 vim 终端执行命令 apt-get install vim 具体效果如下 如果出现如下错误 则先执行apt-get update命令然后再次执行apt-get install vim命令 具体结果截图如下 第三步保存为新镜像 在新窗口中查看当前运行的容器 执行 docker commit 命令将容器保存为镜像 新镜像命名为 ubuntu-with-vi 查看新镜像的属性 从 size 上看到镜像因为安装了软件而变大了从新镜像启动容器验证 vi 已经可以使用 然而Docker 并不建议用户通过这种方式构建镜像因为这是一种手工创建镜像的方式容易出错效率低且可重复性弱 方式二Dockerfile方式构建镜像 Dockerfile 是一个文本文件记录了镜像构建的所有步骤 第一步准备Dockerfile  第二步docker build 命令构建镜像 运行 docker build 命令-t 将新镜像命名为 ubuntu-with-vi-dockerfile命令末尾的 . 指明 build context 为当前目录Docker 默认会从 build context 中查找 Dockerfile 文件我们也可以通过 -f 参数指定 Dockerfile 的位置 具体结果部分片段截图如下所示 通过 docker images 查看镜像信息 镜像 ID 为 35ca89798937与构建时的输出一致 此时通过 docker history 命令此时去查看镜像分层结构 docker history 会显示镜像的构建历史也就是 Dockerfile 的执行过程 具体结果如下图所示 ubuntu-with-vi-dockerfile 与 ubuntu 镜像相比确实只是多了顶部的一层 35ca89798937由 apt-get 命令创建大小为 97.07MB。docker history 也向我们展示了镜像的分层结构每一层由上至下排列 五、镜像的缓存特性 Docker 会缓存已有镜像的镜像层构建新镜像时如果某镜像层已经存在就直接使用无需重新创建 还是上面的例子在Dockerfile中添加一些新的内容 第一步准备文件Dockerfile和test_file; 第二步执行docker build 命令 如果我们希望在构建镜像时不使用缓存可以在 docker build 命令中加上 --no-cache 参数; 需要注意的是Dockerfile 中每一个指令都会创建一个镜像层上层是依赖于下层的无论何时只要某一层发生变化其上面所有层的缓存都会失效.也就是说如果我们改变 Dockerfile 指令的执行顺序或者修改或添加指令都会使缓存失效 比如交换前面 RUN 和 COPY 的顺序 第一步修改Dockerfile文件内容 第二步执行docker build 命令 可以看到生成了新的镜像层 bc87c9710f40缓存已经失效 此外除了构建时使用缓存Docker 在下载镜像时也会使用
http://www.dnsts.com.cn/news/192891.html

相关文章:

  • 常州免费网站制作公司网站建设 wordpress
  • 中国建设网站wordpress php推送示例
  • 1688网站如何运营乐陵森林
  • 网站建设进度表下载怎样辨别自己网站的好坏
  • 厦门做网站培训中国包装设计网
  • 网站开发html文件规范如何建设网站视频
  • wordpress+手机站目录wordpress generator
  • 一个网站能多个域名做不同站点景观设计公司有哪些
  • 专业的西安免费做网站合肥外贸网站建设公司
  • 黑龙江牡安建设有限公司网站网站建设管理制度九不准
  • 传奇网站免费空间古镇 网站建设
  • 杂志社网站模板开发公司安全生产管理制度
  • 天津网站建设方案杭州动漫设计公司最新招聘
  • 网站默认地区数据修改软件开发还是网站开发好
  • 网站建设公司费用电脑怎样做幻灯片的网站
  • 经典企业网站北京vi设计方案
  • 胶州市经济技术开发区建设局网站社交新零售
  • 怎么查网站的备案号微信小程序怎么制作游戏
  • 网站服务器排名前十要学好网站开发要会什么
  • 收录快网站用html做的网站步骤
  • 关键词排名优化网站建设公司生鲜农产品网站建设
  • 最专业的网站建设大数据培训心得
  • 公司做网站公司免费签名设计在线生成
  • 重庆祥云平台做网站网站怎么做平台
  • 河北网站建设模板西安做网站找缑阳建
  • 企业公司网站模版电商网站 制作
  • 个人网站首页布局西安网站优化招聘网
  • 安徽省建设工程安全 协会网站临沂网站建设哪家专业
  • 企业网站seo哪里好智推seo
  • 公司介绍ppt模板免费下载班级优化大师官网登录