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

[经验分享] docker镜像的管理

[复制链接]

尚未签到

发表于 2018-5-28 09:58:39 | 显示全部楼层 |阅读模式
  Docker image详细介绍
  在之前的介绍中,我们知道docker images 是docker的三大组件之一。
  docker把下载的 images 存储到docker主机上,如果一个 image 不在主机上,docker会从一个镜像仓库下载,默认的仓库是  DOCKER HUB  公共仓库。
  接下来将介绍更多关于docker images 的内容,包括:
  使用和管理本地主机上的 images
  创建一个基础的 images
  上传 images 到docker hub (公共images 仓库)
  列出本地主机上已经存在的 images
  1)使用docker images  显示本机上的 images
  
DSC0000.jpg

  一个仓库可能有一个 images 的多个发行版,比如ubuntu,他们有 10.04 12.04 12.10 13.04 14.04,每个发行版的标记都不同,可以使用 tag 命令来指定 images
  注:如果你不指定具体的发行版,比如仅使用ubuntu,那么docker会使用最新的发行版ubuntu:latest
  提示:建议最好指定发行版,只有这样你才可以保证你真正使用的 image 是那个
  2)查找 images
  docker的一个特点是很多人因为各种不同的用途创建了各种不同的 images 。它们都被上传到了docker hub 共有仓库上,我们可以在docker hub 的网站上来查找它们。使用docker search 命令。格式是“docker  search 关键词”
DSC0001.jpg

  3)获取/下载 images
  当我们启动容器使用的 image 不在本地主机上时,docker会自动下载他们。这很耗时,我们可以使用docker pull 命令来预先下载我们需要的 image 。
  格式是“docker  pull   镜像名”
DSC0002.jpg

  4)查看镜像完整信息
  当镜像下载成功后,你可以看到 12 位的hash 值像 05188b417f30,这是下载完整的镜像的精简 ID,这些短的镜像 ID 是完整镜像ID 的前 12 个字符--可以使用docker inspect 或者docker images  --no-trunc来获得完整的镜像 ID。
DSC0003.jpg

DSC0004.jpg

  5)创建我们自己的 images
  别人的镜像虽然好,但不一定适合我们。我们可以对他们做一些改变,有 2 个方法:
  1.第一个方法:使用docker commit  来扩展一个 image。
  步骤如下:
  ①先使用 基础image 启动容器,更新后提交结果到新的 image,命令最后其实省略了/bin/bash,其实默认就是/bin/bash,可以省略。我们这里以docker.io/centos:latest为基础镜像来制作属于我们的镜像。
DSC0005.png

  ②往容器内添加应用
DSC0006.png

  ③应用安装完毕,退出容器
DSC0007.png

  ④用docker commit来制作镜像成为我们的镜像
DSC0008.jpg

  ⑤使用docker images  来查看新创建的镜像,之后,可以使用新的镜像来启动容器了,这里我们只学怎么做成属于我们的镜像,就到此为止了,就不进入容器了。
DSC0009.jpg

  2.第二个办法:从dockerfile镜像文件来创建 image
  两种方法的对比说明
  1)使用docker commit  来扩展一个 image 比较简单,但它不容易在一个团队中分享它,别人看不见你镜像内部安装了什么应用
  2)使用docker build  来创建一个新的 image 。可以让别人看见你制作的镜像内有有什么应用,便于团队交流。
  步骤如下:
  ①我们需要创建一个dockerfile,包含一些如何创建我们的image 的指令。现在,我们来创建一个目录和一个dockerfile。我们这里以docker.io/centos:centos7为基础镜像来制作属于我们的镜像。
DSC00010.png

DSC00011.png

  ②编写完成dockerfile后可以使用dockerbuild  来生成镜像。
DSC00012.jpg

DSC00013.png

  ③使用docker images  来查看新创建的镜像,之后,可以使用新的镜像来启动容器了,这里我们只学怎么做成属于我们的镜像,就到此为止了,就不进入容器了。
DSC00014.jpg

  说明:可以看到 build 进程在执行操作。它要做的第一件事情就是上传这个dockerfile内容,因为所有的操作都要依据dockerfile来进行。然后,dockfile中的指令被一条一条的执行。每一步都创建了一个新的容器,在容器中执行指令并提交修改(就跟之前介绍过的docker commit  一样)。当所有的指令都执行完毕之后,返回了最终的镜像 id。所有的中间步骤所产生的容器都被删除和清理了。
  *注意一个镜像不能超过127 层
  6)用docker tag  命令来修改镜像的标签(即修改镜像的名字)
  我们这里就以修改centos6镜像为例:
DSC00015.jpg

  7)删除不要的镜像
  我们就以删除centos6镜像为例:
DSC00016.jpg

  8)从本地文件系统导入
  要从本地文件系统导入一个镜像,可以使用openvz(容器虚拟化的先锋技术)的模板来创建:openvz的模板下载地址为http://openvz.org/Download/template/precreated。
  先下载了一个centos-7-x86_64.tar.gz的镜像,之后使用以下命令导入:
DSC00017.jpg

  9)上传镜像
  用户可以通过docker push  命令,把自己创建的镜像上传到仓库中来共享。例如,用户在 Docker Hub 上,完成注册后,可以推送自己的镜像到仓库中。
  这里有两种访问可以创建和注册一个 Docker Hub 账户:
  1.通过网站,(https://hub.docker.com)
  2.通过命令行
  你可以通过使用命令行输入 docker login 命令来创建一个 Docker Hub 账号
  #docker login
  邮箱确认
  一旦你填写完毕表格,请查看你的电子邮件,通过点击欢迎信息中的链接来激活您的账户。
  基本思路:
  首先注册docker的账户,然后使用dockerlogin登录。
  使用docker push可以将自己的镜像上传上去了.
DSC00018.jpg

DSC00019.jpg

  10)存出和载入镜像
  当需要把一台机器上的镜像迁移到另一台机器的时候,需要存出镜像与载入镜像。
  存出镜像
  如果要导出镜像到本地文件,可以使用docker save  命令。
DSC00020.jpg

  载入镜像
  可以使用docker load  从导出的本地文件中再导入到本地镜像库
DSC00021.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-482058-1-1.html 上篇帖子: docker volume 下篇帖子: docker镜像的管理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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