设为首页 收藏本站
查看: 1267|回复: 0

[经验分享] Docker images详细介绍及管理制作镜像

[复制链接]

尚未签到

发表于 2018-5-28 06:13:59 | 显示全部楼层 |阅读模式
  Docker   images   介绍:
  
       docker  images 是docker 的三大组件之一
    docker把下载好的镜像上传到docker本地镜像仓库中,如果本地镜像仓库中不存在需要用到的镜像,docker会从一个镜像库中去下载所需镜像,默认的公共仓库是Docker HUB。
  

  Docker image 的内容:
  

  •   使用和管理本地主机上images
  •   创建一个基础的images
  •   上传images到docker hub(公共images仓库)
  •   列出本地主机上已经存在的images
  

  (1.)使用Docker images 显示本机上的images
DSC0000.jpg


  •   EPOSITORY:来自于哪个仓库,比如Docker.io/centos
  •   TAG的标记,比如 latest
  •   IMAGE ID:镜像的ID号
  •   CREATED:创建时间
  •   SIZE:镜像的大小
  
  

  注意:
            一个仓库可能有多个发行版本,比如Ubuntu,他们有10.04、12.04、12.10、
  13.04、14.04,每个发行版本的标记都不同,可以使用tag命令来指定images标记
  如果不指定具体的发行版本的话,例如就使用Ubuntu,那么Docker会使用最新的发
  行版Ubuntu:latest
  

  (2.)获取images
  

         我们如何获取新的images呢?当我们启动容器使用的image不再本地主机上时,Docker会自动下载它们。这时很耗时,我们可以使用Docker pull命令预先下载我们需要的image
         DSC0001.jpg
  

  (3.)查找images
  

       Docker的一个特点是很多人因为各种不同的用途创建了各种不同的images。
  它们都被上传到了Docker hub公有仓库上,我们可以在Docker hub 的网站上来查找它们。
  

      使用Docker search命令
  

       例如:当我们需要ruby和sinatra作为web应用程序开发时,我们使用Docker  search
  来搜索合适的image,使用关键字Sinatra。
  

   DSC0002.jpg
  我们看到了返回了很多包含Sinatra的images。其中包括image名字、描述、星级(表
  示该image的受欢迎程度)、是否官方创建、是否自动创建。官方的images是
  stackbrew项目组创建和维护的,automated资源允许你验证image的来源和内容。
  

  到目前为止,我们看到了2种images资源,比如Ubuntu,被称为基础或者根镜像。这
  些基础镜像是Docker公司创建、验证、支持、提供。他们往往使用一个单词作为他
  们的名字。还有一种类型,比如我们选择的training/Sinatra镜像。他是由Docker的用
  户创建并维护的,你可以通过指定image名字的前缀来指定他们,比如training。
  

  (3.)下载images
  

     现在我们指定了一个image, training/Sinatra,我们可以使用docker pull命令来下载它。
  

  
DSC0003.jpg

  下载过程中,会输出获取镜像的每一层信息
  

  该命令实际上相当于#Docker pull register.hub.docker.com/ubuntu:12.04  命令,即从注册服务器register.hub.docker.com 中的Ubuntu仓库来下载标记为 12.04 的镜像。
  有时候官方仓库注册服务器下载较慢,可以从其他仓库下载。 从其他仓库下载时需要指定完整的仓库注册服务器地址。
  例如: #docker pull dl.dockerpool.com:5000/ubuntu:12.04
  

  查看完整信息:
          当镜像下载成功后,你可以看到12位的hash值镜像
   DSC0004.jpg
  像1d551d635e99,这是下载完整的镜像的精简ID,这些短的镜像ID是完整镜像ID的前12个字符。
  

  可以使用Docker inspect 或者Docker images --no-trunc来获得完整的镜像ID
  

  
  Docker inspect:
  

  
DSC0005.jpg

  或者
  

  Docker   images  --no-trunc
  

   DSC0006.jpg
  

  创建images:
      1.第一种方法:使用Docker commit 来扩展一个新的images
  

               (1.)先使用images启动容器,进到容器里面
   DSC0007.jpg
             (2.)在容器中添加mariadb-server应用。
   DSC0008.jpg
  注意:记住刚才的容器的ID号
  

  安装完成后退出,现在容器已经改变了,更新后的结果提交到新的image。
  

  使用Docker commit 命令来提交相应的副本。
  

   DSC0009.jpg
  其中 -m 来指定提交信息的说明信息,跟使用的版本控制工具一样;-a 可以指定更新的用户信息;之后是用来创建镜像的容器ID;最后指定目标镜像的仓库名和tag标记信息。
  

  使用Docker images查看新创建的镜像:
   DSC00010.jpg
  可以使用新创建好的镜像来启动容器:
   DSC00011.jpg
  
  2.第二种方法:从dockefile来创建image
  

      (1.)创建一个目录和一个dockefile文件
   DSC00012.jpg
  
  内容如下:
     DSC00013.jpg
  dockerfile基本语法:
  使用#来注释
  FROM指令告诉docker使用哪个镜像作为基础镜像
  MAINTAINER是维护者信心
  RUN开头的指令会在创建中运行,比如安装一个软件包,在这里使用yum来安装了一些软件
  

  编写完成dockerfile后可以使用docke build 来生成镜像。
  

   DSC00014.jpg
  其中 -t  标记来添加tag,指定新的镜像的用户信息。
  “.”是dockerfile所在的路径(当前目录),也可以替换为一个具体的dockefile路径。
  可以看到build进程在执行操作。他要做的第一件事情就是上传这个dockefile内
  容,因为所有的操作都要依据dockefile来进行。然后,dockefile中的指令被一条一
  条的执行。每一步都创建了一个新的容器,在容器中执行指令并提交修改(就跟
  之前的docker commit一样)。当所有的指令都执行完毕之后,所有中间步骤所产
  生的容器都被删除和清理了。最后返回了最终的镜像ID。
  

  *注意:一个镜像不能超过127层。
  

  查看新生成的镜像:
  

   DSC00015.jpg
  
  

  还可以用docker tag 命令来修改镜像的标签:
  

  修改前:
   DSC00016.jpg
  

  修改后:
DSC00017.jpg

  

  3.从本地文件系统导入
      要从本地文件系统导入一个镜像,可以使用openvz(容器虚拟化的先锋技术)的模板来创建
  openvz的模板下载地址为http://openvz.org/Download/template/precreated。
  

  先下载了一个centos6.tar.gz的镜像,之后使用以下命令导入到本地镜像库
   DSC00018.jpg
  

  4.上传镜像:
  

  用户可以通过docker push 命令,把自己创建的镜像上传到仓库中来共享。
  

  例如: 用户在Docke hub上进行注册完成后,可以推送自己的镜像到docker hub仓库中。
  

  有两种方式可以创建和注册一个docker hub 仓库账户:
  

  1.通过网站,(https://hub,docker.com)
  

  2.通过命令行,输入docker login命令来创建一个Docker HUB 账号
  

  #docker login
  

  邮箱确认:
  

  一旦你填写完毕表格,请查看你的电子邮件,通过点击欢迎信息中的链接来激活您的账户。
  

  基本思路步骤:
  (1.)首先注册docker的账户,然后使用docker login登录。
DSC00019.jpg

  下一步
DSC00020.jpg

DSC00021.jpg

  上传结果:
DSC00022.jpg

  

  如果有其他仓库,就输入其他仓库名
  例如:docker push  docker.sina.com.cn:5000/commit
  

  5.用docker rmi 移除本地images
  注意:在删除images之前要先用docker rm 删掉依赖于这个images容器
  
  

   删除容器:
      DSC00023.jpg
  删除镜像:
      DSC00024.jpg
  

  6.导出/导入镜像:
  

    当需要把一台机器上的镜像迁移到另一台机器上的时候,需要导出镜像、导入镜像。
       
     导出镜像:
      DSC00025.jpg
     导入镜像:
      可以使用docker load 从导出的本地文件中再导入到本地镜像库。
      例如:
      DSC00026.jpg
     或者是
      DSC00027.jpg
     
  
  
  

  
  
  
  
  

  

  

  
  

  

  

  

  

  

  

  

  

  

  

  

  
  

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-481904-1-1.html 上篇帖子: Docker的安装基本命令配置详解 下篇帖子: 如何运行容器?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表