美文网首页
Docker 镜像导出、导入

Docker 镜像导出、导入

作者: 许俊贤 | 来源:发表于2019-03-31 00:05 被阅读0次

    前言

    场景:最近在公司测试使用Docker的时候遇到一个DNS解析的问题,导致镜像无法pull下来。
    解决方案:1.搭建私有镜像库 2.使用docker镜像导出export(保存save)为文件的机制,就可以把镜像复制到任意的地方了。

    当然,该文档记录的是“方法2”,“1.私有镜像”的后续其他文章专门写。(文章很多都在本地,平常工作比较忙只能抽时间整理、梳理)。

    注:该文图片不贴上来拉了,部分东西涉及公司隐私,故以下文件名等是临时修改的。

    docker导出、导入

    可查看相应的镜像

    docker images
    

    使用 docker images 查看本机已有的镜像(也可以使用 docker commit <CONTAIN-ID> <IMAGE-NAME>命令把一个正在运行的容器保存为镜像)

    根据具体镜像名,执行一下操作即可。
    1.导出export 、导入import

    docker export TestImages> /tmp/myImages.tar  
    

    导出完成后,就可以使用 import 导入了

    docker import  /tmp/myImages.tar  
    

    2.保存save 、加载 load

    格式:docker save IMAGE(镜像)

    docker save TestImages
    

    有点慢,稍微等待一下,没有任何warn信息就表示保存OK,会出现镜像ID。
    现在就可以在任何装 docker 的地方加载 刚保存的镜像了

    docker load < /tmp/myImages.tar   
    

    导出 export 与 保存 save 的区别

    1.export导出的镜像文件大小 小于 save保存的镜像
    2.export 导出(import导入)是根据容器拿到的镜像,再导入时会丢失镜像所有的历史,所以无法进行回滚操作(docker tag <LAYER ID> <IMAGE NAME>);而save保存(load加载)的镜像,没有丢失镜像的历史,可以回滚到之前的层(layer)。(查看方式:docker images --tree)

    注:导入加载进来觉得不合适可以使用 docker rm 容器ID 、 docker rmi 镜像ID 来删掉。
    移除所有的容器和镜像:

    docker kill $(docker ps -q) 
    docker rm $(docker ps -a -q) 
    docker rmi $(docker images -q -a)
    

    备注:个人博客同步至简书。

    相关文章

      网友评论

          本文标题:Docker 镜像导出、导入

          本文链接:https://www.haomeiwen.com/subject/lmvebqtx.html