地牯牛的博客

欢迎光临
我们一直在努力

docker 的基础使用方法

Docker 软件包和依赖包已经包含在默认的 CentOS-Extras 软件源里,安装命令如下:

[root@runoob ~]# yum -y install docker-io

启动 Docker 后台服务

[root@runoob ~]# service docker start


docker镜像文件的转操作



转载自:http://blog.csdn.net/anxpp/article/details/51810776

1、概述

    我们制作好镜像后,有时需要将镜像复制到另一台服务器使用。

    能达到以上目的有两种方式,一种是上传镜像到仓库中(本地或公共仓库),但是另一台服务器很肯能只是与当前服务器局域网想通而没有公网的,所以如果使用仓库的方式,只能自己搭建私有仓库,这会在另一篇文章中介绍。

    如果我们仅仅是要复制到另外少数的服务器,搭建私有仓库显然没有这个必要,而将镜像保存为文件上传到其他服务器再从文件中载入镜像也是一个不错的选择。

    可以使用Docker save和Docker load命令来存储和载入镜像。

2、保存镜像为文件

    如果要讲镜像保存为本地文件,可以使用Docker save命令。

    命令格式:


  1. docker save -要保存的文件名 要保存的镜像

    首先查看当前的镜像列表:


  1. docker images

01

    比如这里,我们将java8的镜像保存为文件:


  1. docker save -o java8.tar lwieske/java-8

    完成后通过 ls 命令即可看到文件。 

3、从文件载入镜像

    从文件载入镜像可以使用Docker load命令。

    命令格式:


  1. docker load --input 文件

    或者


  1. docker load < 文件名

    此时会导入镜像以及相关的元数据信息等。

    首先使用SSH工具将文件上传到另一台服务器。

    然后通过命令载入镜像:


  1. docker load < java8.tar

    导入后可以使用docker images命令查看:

02





在 docker 之间导出导入镜像

很喜欢玩docker,但最新遇到一个问题,公司给的新机器的dns有问题,导致pull不下来镜像。


<QQ图片20150529102110.png>



没办法了,没有镜像什么神马都干不了,又不能花很多时间去搭建私有的镜像库,只有另寻办法了。

废话少说,经过探究,发现 docker 提供把镜像导出export(保存save)为文件的机制,这样就可以把镜像copy到任意地方了。


1. 导出 export - 导入 import

格式:docker export CONTAINER(容器)

使用 docker ps -a 查看本机已有的容器,如:


我们使用容器 furious_bell,现在要将这个容器保存为一个文件 myunbuntu-export-1204.tar


[java] view plain copy

  1. docker export furious_bell > /home/myubuntu-export-1204.tar  


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



[java] view plain copy

  1. docker import - /home/myubuntu-export-1204.tar  



2.保存save - 加载 load


格式:docker save IMAGE(镜像)

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


这里有个基础镜像:ubuntu:12.04,现在要将这个镜像保存为一个文件myubuntu-save-1204.tar

[java] view plain copy

  1. docker save 9610cfc68e8d > /home/myubuntu-save-1204.tar  


有点慢,稍微等待一下,没有任何warn信息就表示保存OK。9610cfc68e8d 是镜像ID

现在就可以在任何装 docker 的地方加载 刚保存的镜像了


[java] view plain copy

  1. docker load < /home/myubuntu-save-1204.tar</span>  



3.导出 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 来删掉。

       移除所有的容器和镜像(大扫除):


[java] view plain copy

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





参考:


http://www.tuicool.com/articles/emYVRzv
http://my.oschina.net/zjzhai/blog/225112
http://www.sxt.cn/u/756/blog/5339 




未经允许不得转载:地牯牛的博客 » docker 的基础使用方法
分享到: 更多 (135)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

地牯牛的博客 更专业 更方便

联系我们联系我们

登录

注册