GIS+=地理信息+容器技术(3)——Docker安装和镜像管理
2016-03-10 15:58
1131 查看
--------------------------------------------------------------------------------------
Blog: http://blog.csdn.net/chinagissoft
QQ群:16403743
宗旨:专注于"GIS+"前沿技术的研究与交流,将云计算技术、大数据技术、容器技术、物联网与GIS进行深度融合,探讨"GIS+"技术和行业解决方案
转载说明:文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
--------------------------------------------------------------------------------------
Docker安装
由于本人测试操作系统为Ubuntu14.04,对于该操作系统来说,可以直接从Ubuntu源安装Docker程序,具体操作如下
但是如果你希望安装最新版本的Docker程序,你可能需要更新不同的源,最新的Docker版本为1.9,具体操作如下
相对来说,Docker安装比较其他OpenStack、Hadoop、Spark相对简单。
镜像管理
Linux FS in Docker
对传统Linux来说,当我们启动这个操作系统时,一般会将Linux的rootFS设置为只读状态,然后检查其完整性,然后再将rootFS设置为可写状态,这样我们就可以对Linux操作系统进行相关操作了。
Docker在启动container时,也将rootfs设置为readonly,然后通过aufs把一个readwrite的fs挂载到rootfs上,并且把下层fs设置为readonly,这样就构成了一个完整的os。
•对每一层readonly的fs,称之为image(例如上面的Debian或者BusyBox)
•对顶上read-write的fs,称之为container
•对于readonly中的内容的修改,采用的是COW(Copyon Write)的技术,把文件复制到read-wirte层并修改,实际用户看到的是当前container层中的文件,image中的文件不会被影响
•除了baseimage之外,每一层image都有一个parent image(例如Debian,(Debian+emaces))
•没有parentimage的镜像叫base image(例如Kernal)
•基于COW的技术,image部分是不会被修改的,因此container可以共享image层的fs,提高了存储效率
如何获得镜像
一般情况下,我们从Docker官方仓库可以获得,当然中国也有比较知名的Docker镜像源,例如DAOCloud或者灵雀云。这个类似与我们是从Ubuntu官方源下载软件还是从阿里源还是163源下载一样。
docker官方提供的用来共享image的平台:https://hub.docker.com
曾经在2015年6月份参加过北京的云计算大会,当时对容器技术(Docker)还不太熟悉,不过也有幸听了来自DAOCloud的创始人陈齐彦和灵雀云创始人左玥的演讲,一个来自EMC(曾就职于Oracle),一个来自微软(负责Windows Server 2016容器部分的研发),都是牛人。
DAOCloud:https://www.daocloud.io/
云雀云:http://www.alauda.cn/
查询镜像
我们可以直接从OS里面使用Docker命令来查询相关镜像信息。
例如我们查询一下Hadoop的容器镜像。
下载镜像
既然我们可以查询镜像,我们就可以将相关镜像下载到本地来使用,例如我们可以下载一个Ubuntu12.04操作系统的镜像。
如果下载不指定tag,会将所有镜像相关tags下载下来,关于tag,请继续查看后面介绍。
一般情况下,该操作可能由于网络、镜像大小导致不同的等待时间。所以建议下载有针对性。
镜像命名与版本管理
镜像下载完毕之后,我们可以通过如下命令来显示镜像列表信息。
普通镜像的命名规范{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中
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。
•对每一层readonly的fs,称之为image(例如上面的Debian或者BusyBox)
•对顶上read-write的fs,称之为container
•对于readonly中的内容的修改,采用的是COW(Copyon Write)的技术,把文件复制到read-wirte层并修改,实际用户看到的是当前container层中的文件,image中的文件不会被影响
•除了baseimage之外,每一层image都有一个parent image(例如Debian,(Debian+emaces))
•没有parentimage的镜像叫base image(例如Kernal)
•基于COW的技术,image部分是不会被修改的,因此container可以共享image层的fs,提高了存储效率
如何获得镜像
一般情况下,我们从Docker官方仓库可以获得,当然中国也有比较知名的Docker镜像源,例如DAOCloud或者灵雀云。这个类似与我们是从Ubuntu官方源下载软件还是从阿里源还是163源下载一样。
docker官方提供的用来共享image的平台:https://hub.docker.com
曾经在2015年6月份参加过北京的云计算大会,当时对容器技术(Docker)还不太熟悉,不过也有幸听了来自DAOCloud的创始人陈齐彦和灵雀云创始人左玥的演讲,一个来自EMC(曾就职于Oracle),一个来自微软(负责Windows Server 2016容器部分的研发),都是牛人。
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中
相关文章推荐
- Docker时代来了,你准备好了吗
- docker学习笔记12:Dockerfile 指令 ENTRYPOINT介绍
- 关于Docker官方CentOS镜像无法启动mysqld的总结
- 分析Mysql 5.6的Dockerfile
- 关于Docker目录挂载的总结
- 利用Dockerfile构建一个基于centos 7,包括java 8, tomcat 7,php ,mysql+mycat的镜像
- Docker命令详解
- Docker——image与container
- Docker镜像
- Docker Hub仓库注册,使用
- 利用Docker Hub上的Nginx部署Web应用
- docker-registry 搭建私有仓库服务器
- centos7下安装使用docker
- CentOS7安装docker 启动不了解决篇
- linux 构建 docker 网络
- 技术干货 | Docker容器中需要避免的十种常见误区
- docker学习笔记11:Dockerfile 指令 CMD介绍
- 用浏览器管理 Docker
- docker 安装跟基本操作
- 使用 Docker 容器应该避免的 10 个事情