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

[经验分享] Docker入门之二镜像

[复制链接]

尚未签到

发表于 2017-12-5 17:29:18 | 显示全部楼层 |阅读模式
  Docker大部分的操作都是围绕三大核心概念:镜像、容器、仓库。学Docker首先得了解这几个词。这几个词可能平时也会有涉及,但Docker中可能不是同样得概念。
  一、三大核心概念
  镜像:可能在安装软件操作系统的时候可能会用到镜像,Docker中的镜像也操作系统镜像文件类似,可以理解成是一个模板,这个有点类似手机app应用。
  容器:容器就是用来装东西的,Docker中容器用来装什么呢,它用来装由镜像创建的应用运行实例。这个有点类似手机中的沙盒,每个手机app都用自己的运行环境,不受其他app的影响。
  仓库:仓库也是用来存放东西的,它是一种静态的,存放的是镜像文件,而容器是一种动态的,运行的是镜像。这个有点类似app store,用户可以从仓库中下载app安装到手机中,手机中每个应用都是一个沙盒环境。
  三大核心一篇博客是写不完的,一个一个的来,今天先学习下镜像image。首先在学习Docker时如果有的地方比如参数什么的不知道了,我们可以通过help来熟悉,比查其他的资料书快多了。如果我们不知道怎么用了,我们可以先通过docker --help来获取大的知识点,然后找到对应的小的知识点,然后再help,而且英文注释也不是很难。
DSC0000.png

DSC0001.png

  二、镜像
  Docker运行容器前需要本地存放有对应的镜像,如果镜像没有,会存默认的仓库下载,既然是默认仓库那肯定是公共的,当然也可以自定义自己私有的镜像仓库。
  1.获取镜像
  使用镜像首先得获取镜像,使用pull来拉取镜像文件到本地。使用它还是先看help。可以看到它得格式和一些参数说明。



docker pull --help
DSC0002.png

  下图是使用pull来获取hello-world镜像。tag是取最新得。
DSC0003.png

  2.查看镜像
  使用docker images --help来查看格式和参数说明
DSC0004.png

  下面截图中使用了-a、--digests、--no-trunc -q
DSC0005.png

  3.使用tag添加镜像标签 还是先help
DSC0006.png

  这里我还是使用hello-world镜像,给它一个标签myhello-world,可以留意下它们两个的id,其实它们指向同一个镜像,只是给它起了个别名。
DSC0007.png

  4.使用inspect查看详细信息,还是老套路,看help
DSC0008.png

  通过inspect查看hello-world的信息
DSC0009.png

  5.使用history查看镜像历史记录
  第一步还是通过help查看格式和参数
DSC00010.png

  下面使用history查看hello-world的记录
DSC00011.png

  6.镜像查找
  可以使用search来查找镜像,还是help来查看格式和参数
DSC00012.png

  下图是查找hello-world 镜像,这个查找stars>3的
DSC00013.png

  7.删除镜像
  还是先看help,使用rmi时,如果通过标签删除镜像时,如果该镜像只有一个标签,那在删除标签之后也会把该镜像也删除,如果有多个标签那只删除对应的标签,如果通过ID删除,如果该镜像创建的容器存在是镜像文件无法删除,其次会尝试删除所有指向该镜像的标签,然后删除该镜像文件本身。
DSC00014.png



  • 使用标签删除镜像
  下面删除了myhello_world的镜像,然后查看镜像列表,发现只有hello-world了。
DSC00015.png

  2.使用镜像ID删除镜像
  下图可以看到,我想通过id删除镜像hello-world时,有一个错误,说不能删除,因为这个镜像在被容器8a2faee3dfa4使用,使用ps查看容器,还真有一个容器id是这个。
DSC00016.png

DSC00017.png

  那直接删除镜像不行,该怎么正确删除呢?我们可以先删除依赖镜像的所有容器,然后再来删除镜像。
DSC00018.png

  上图尝试删了几次,一直提示有冲突,把所有与它依赖的容器删完了,才能删除镜像,这确实有点麻烦,其实可以使用-f参数强制删除,不过这中太暴力了。
  8.创建镜像
  还是通过help来查看格式以及参数
DSC00019.png



  • 基于已有镜像的容器创建
    首先查看下容器记住容器id,然后使用commit提交并将镜像id设置为cuiywhelloworld.
    DSC00020.png
  • 基于本地模板导入
    还是通过help来查看格式和参数
    DSC00021.png
    这里没找到合适的模板就没做实验。暂留着,或者有没有朋友给提供一个能在window下使用的模板。

  9.存出和载入镜像


  • 存出镜像
    可以使用save来存出镜像 通过-o来指定路径
    DSC00022.png
  • 载入镜像
    可以使用load来载入镜像
    DSC00023.png
  • 实验
    下图是我先导出镜像hello-world到E盘,导出后可以在E:\docker下看到helloworld.tar文件,然后又将tar镜像压缩文件导入
    DSC00024.png
    DSC00025.png
  10.上传镜像
  有pull拉就有push推,使用push可以提交镜像
   DSC00026.png

    这里先将cuiywhelloworld添加一个新的标签cuiyw/helloworld,然后通过push cuiyw/helloworld来提交,不过好尴尬,提交请求被拒,失败了。有没有老司机可以直接提交到公共仓库的,等学到仓库得时候再提交试一试。
     DSC00027.png
  三、总结
  花了昨晚一个晚上加今天一天的时间终于把镜像这块大致学了一下,内容蛮多的,可能截图毕竟多,文字毕竟少,还是方法,按照一定的套路来学,也能很快上手,最重要的还是help。

运维网声明 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-420898-1-1.html 上篇帖子: Docker 容器镜像删除 下篇帖子: docker使用与nginx搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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