容器虚拟化–docker
核心概念
镜像
是一个只读的模板,类似于安装系统用到的那个iso文件,我们通过镜像来完成各种应用的部署。docker容器
镜像类似于操作系统,而容器类似于虚拟机本身。它可以被启动、开始、停止、删除等操作,每个容器都是相互隔离的。docker仓库
存放镜像的一个场所,仓库分为公开仓库和私有仓库。 最大的公开仓库是hub.docker.com,国内公开仓库http://dockerpool.com/
安装
centos6(6.5之前版本需要升级一下 yum update )1
2yum install -y epel-release
yum install -y docker-io
centos71
yum install -y docker
启动docker1
/etc/init.d/docker start
镜像管理
1 | docker pull centos //从docker.com获取centos镜像,如果太慢,直接做个加速http://www.apelearn.com/bbs/thread-15126-1-1.html |
创建镜像-基于已有镜像的容器创建
运行docker run后,进入到该容器中1
docker exec -it f68 /bin/bash
我们做一些变更,比如安装一些东西,然后针对这个容器进行创建新的镜像1
2
3docker commit -m "change somth" -a "somebody info" image_id
#例如:
ocker commit -m "install httpd" -a "Graped" 2c74d574293f graped/centos
这个命令有点像svn的提交,-m 加一些改动信息,-a 指定作者相关信息 2c74d这一串为容器id,再后面为新镜像的名字。
创建镜像-基于本地模板导入
模块获取,可以直接在网上下载一个模块 http://openvz.org/Download/templates/precreated 可惜速度并不快,假如我们下载了一个centos的模板 centos-5-x86.tar.gz 那么导入该镜像的命令为:1
cat centos-6-x86_64-minimal.tar.gz |docker import - centos-6-x86_64
把现有镜像,导出为一个文件:1
docker save -o centos_with_net.tar graped/centos
我们还可以用该文件恢复本地镜像:1
2docker load --input centos_net.tar #或者
docker load < centos_net.tar
上传镜像1
docker push image_name