--------------------------------------------------------------------------------------
版权所有:超图研究所(www.supermap.com)
Blog: http://blog.csdn.net/chinagissoft
QQ群:16403743
宗旨:专注于"GIS+"前沿技术的研究与交流,将云计算技术、大数据技术、容器技术、物联网与GIS进行深度融合,探讨"GIS+"技术和行业解决方案
转载说明:文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
--------------------------------------------------------------------------------------
Docker安装
由于本人测试操作系统为Ubuntu14.04,对于该操作系统来说,可以直接从Ubuntu源安装Docker程序,具体操作如下
$sudo apt-get update $sudo apt-get install -y docker.io $sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker $sudo sed -i '$acomplete -F _docker docker' /etc/bash_completion.d/docker.io
但是如果你希望安装最新版本的Docker程序,你可能需要更新不同的源,最新的Docker版本为1.9,具体操作如下
$sudo apt-get install apt-transport-https $sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA8 $sudo bash -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list" $sudo apt-get update $sudo apt-get install lxc-docker
相对来说,Docker安装比较其他OpenStack、Hadoop、Spark相对简单。
镜像管理
Linux FS in Docker
对传统Linux来说,当我们启动这个操作系统时,一般会将Linux的rootFS设置为只读状态,然后检查其完整性,然后再将rootFS设置为可写状态,这样我们就可以对Linux操作系统进行相关操作了。
Docker在启动container时,也将rootfs设置为readonly,然后通过aufs把一个readwrite的fs挂载到rootfs上,并且把下层fs设置为readonly,这样就构成了一个完整的os。
docker官方提供的用来共享image的平台:https://hub.docker.com
DAOCloud:https://www.daocloud.io/
云雀云:http://www.alauda.cn/
查询镜像
我们可以直接从OS里面使用Docker命令来查询相关镜像信息。
例如我们查询一下Hadoop的容器镜像。
下载镜像
既然我们可以查询镜像,我们就可以将相关镜像下载到本地来使用,例如我们可以下载一个Ubuntu12.04操作系统的镜像。
如果下载不指定tag,会将所有镜像相关tags下载下来,关于tag,请继续查看后面介绍。
一般情况下,该操作可能由于网络、镜像大小导致不同的等待时间。所以建议下载有针对性。
root@controller:/etc/bash_completion.d# sudo docker pull ubuntu:12.04 12.04: Pulling from library/ubuntu ce049369478e: Pull complete 2ec1b169061f: Pulling fs layer 9bbaf44a8a7c: Download complete 38f2c35e1b51: Download complete Pulling repository docker.io/library/ubuntu 0ac5b09d8536: Download complete be10ee96620d: Download complete 5e59ab480134: Download complete efbb515ae632: Download complete Status: Downloaded newer image for ubuntu:12.04 docker.io/library/ubuntu: this image was pulled from a legacy registry. Important: This registry version will not be supported in future versions of docker.
镜像命名与版本管理
镜像下载完毕之后,我们可以通过如下命令来显示镜像列表信息。
root@controller:~/sinatra# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu 14.04 1d073211c498 2 weeks ago 187.9 MB ubuntu 14.04.3 1d073211c498 2 weeks ago 187.9 MB ubuntu 12.04 0ac5b09d8536 2 weeks ago 136.1 MB <none> <none> ce049369478e 2 weeks ago 135.9 MB training/sinatra latest f0f4ab557f95 17 months ago 447 MB
普通镜像的命名规范{namespace}/{repositoryname}:{tag}
•namespace是dockerhub的用户名,时间是起到了namespace的作用
•repository,类似于github的项目,例如mysql
•tag,表示版本信息,可选,默认latest,例如cesc/mysql:5.6
•dockerlogin,登录到docker hub中
•把container通过dockercommit的命令转换为image
•通过dockertag来命名新生成的image
•dockerpush到docker hub中