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

[经验分享] Docker镜像的创建、存出、载入的方法

[复制链接]

尚未签到

发表于 2019-2-20 09:56:49 | 显示全部楼层 |阅读模式
创建镜像的方法有三种:基于已有镜像的容器创建、基于本地模板导入、基于Dockerfile创建,本博文讲解前两种。
基于已有镜像的容器创建
该方法是使用docker commit命令,其命令格式为:
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]主要参数选项包括:

  •   -a ,–author=”” 作者信息
  •   -m,–message=”” 提交信息
  •   -p,–pause=true 提交是暂停容器运行
比如,先创建一个运行bash的ubuntu容器:
docker run –it ubuntu /bin/bash
root@d8990fec2141:/# touch test
root@d8990fec2141:/# exit然后根据创建的这个容器来提交一个新的镜像,提交时需要用到容器ID。
docker commit –m “test” –a “zmc” d8990fec2141 testimage如果成功的话,就会返回新镜像的长ID号,然后可以查看看在本地已有的镜像:
docker images
REPOSITORY     TAG         IMAGE ID      CREATED       VIRTUAL SIZE
testimage      latest       baea98d5a437    About a minute ago  188.3 MB
……第三行就是刚刚创建的镜像。
PS:利用此容器创建的镜像Id与此容器的镜像id不同,可知它们不是同一镜像。
基于本地模板导入
也可以从操作系统模板文件导入一个镜像,比如使用OpenVZ提供的模板创建,OPENVZ下载模板在:http://openvz.org/Download/template/precreated。
我尝试使用了Ubuntu14.04的模板:
wget http://download.openvz.org/template/precreated/ubuntu-14.04-x86_64-minimal.tar.gz下载完之后就可以导入了:
sudo cat ubuntu–14.04–x86_64–minimal.tar.gz | docker import – ubuntu:14.04其实只是两个命令,不过很显而易见,就不加解释了。成功的话,就会返回根据模板建立的镜像的长ID
sudo cat ubuntu–14.04–x86_64–minimal.tar.gz | docker import – ubuntu:14.04
ab80404d13d580965b9919b640169ccb585ea7884e6aa9de1ec043075c65fe35然后就可以查看本地的镜像:
docker images
REPOSITORY     TAG         IMAGE ID      CREATED       VIRTUAL SIZE
ubuntu       14.04        ab80404d13d5    56 seconds ago   215.4 MB
testimage      latest       baea98d5a437    29 minutes ago   188.3 MB
….其实可以看出,虽然模板才75M,但创建的镜像并不小。
镜像的存出和载入
可以利用docker save和docker命令来存出和载入镜像。
存出镜像
如果想要把镜像存出到本地文件,可以使用docker save命令,例如,存出本地的刚才创建的testimage:lastest为镜像文件testimage.tar文件:
docker images
REPOSITORY     TAG         IMAGE ID      CREATED       VIRTUAL SIZE
testimage      latest       baea98d5a437    25 minutes ago   188.3 MB
ubuntu       latest       fa81ed084842    3 days ago     188.3 MB
….
docker save –o /data/testimage.tar testimage:latest上面的第6行就是存出代码,这时在/data下就有一个testimage.tar文件,这时我们把本地镜像rmi掉,然后尝试载入。
载入镜像
删除镜像之后的状态:
ubuntu@VM–223–238–ubuntu:/data$ docker rmi baea98d5a437
Untagged: testimage:latest
Deleted: baea98d5a4371a6abf9efc8c53a54a6fc5befd167bf91ce9fd4a28a6d1b7dc5b
ubuntu@VM–223–238–ubuntu:/data$ docker images
REPOSITORY     TAG         IMAGE ID      CREATED       VIRTUAL SIZE
ubuntu       14.04        ab80404d13d5    5 minutes ago    215.4 MB然后载入镜像:
docker load —input testimage.tar
docker images
REPOSITORY     TAG         IMAGE ID      CREATED       VIRTUAL SIZE
ubuntu       14.04        ab80404d13d5    6 minutes ago    215.4 MB
testimage      latest       baea98d5a437    35 minutes ago   188.3 MB第一行就是载入镜像,还可以简化写成:
docker load —input testimage.tar
docker images
REPOSITORY     TAG         IMAGE ID      CREATED       VIRTUAL SIZE
ubuntu       14.04        ab80404d13d5    6 minutes ago    215.4 MB
testimage      latest       baea98d5a437    35 minutes ago   188.3 MB载入操作将会导入镜像以及相关的元数据信息(包括标签等)。
镜像的上传
最后说点镜像的上传,镜像的管理方式非常像git,可以使用docker push命令上传自己本地镜像到仓库,默认上传到DockerHub官方仓库(需要登陆),命令格式:
docker push NAME[:TAG]在上传之前一般会先为自己的镜像添加带自己名字(作者信息)的标签:
docker tag testimage:lastest zmc/testimage:lastest
docker pushzmc/testimage:lastest有利于上传之后的区分。
我觉得无论是运维团队还是开发团队还是一个实验室,都有必要有一个自己的Docker仓库,可以存放符合自己需求的环境或系统镜像,可以实现快速部署。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:

  •   Docker创建镜像、怎么修改、上传镜像等详细介绍
  •   Docker创建镜像两种方法详解
  •   详解nodejs之创建最小docker镜像
  •   详解Docker学习之用commit命令创建镜像
  •   创建Web项目的Docker镜像实例讲解
  •   Docker使用Dockerfile来创建镜像
  •   详解docker中Dockerfile指令创建镜像
文章同步发布: https://www.geek-share.com/detail/2754968176.html
  参考文章:

    docker官方镜像下载及使用Dockerfile创建镜像的方法




运维网声明 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-674727-1-1.html 上篇帖子: docker学习总结二 下篇帖子: docker学习总结三
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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