1.安装docker
wget http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
yum -y install docker-io
yum -y install lxc libcgroup
yum upgrade device-mapper-libs
2.开启docker服务
/etc/init.d/docker start
ps -ef | grep docker
3.启动报错
relocation error: /usr/bin/docker: symbol dm_task_get_info_with_deferred_remove, version Base not defined in file libdev
解决方法:yum upgrade device-mapper-libs
http://yzg784534398.blog.51cto.com/9719002/1828159
4.Docker镜像管理
docker pull centos #从docker.com获取centos镜像
docker images #查看本地都有哪些镜像
docker tag centos szk #为centos镜像设置标签为szk,再使用docker images查看会多出来一行,改行的image id和centos的一样
docker search (image-name) #从docker仓库搜索docker镜像,后面是关键词
docker run -t -i centos /bin/bash #用下载到的镜像开启容器,-i表示让容器的标准输入打开,-t表示分配一个伪终端,要把-i -t 放到镜像名字前面
当该镜像发生修改后,我们可以把该镜像提交重新生成一个新版本进行在本地。
docker ps #查看运行的容器
docker rmi centos #用来删除指定镜像, 其中后面的参数可以是tag,如果是tag时,实际上是删除该tag,只要该镜像还有其他tag,就不会删除该镜像。当后面的参数为镜像ID时,则会彻底删除整个镜像,连通所有标签一同删除
docker ps -a #查看所有容器,包括已经退出的。
5.基于已有镜像的容器创建镜像
运行docker run后,进入到该容器中,我们做一些变更,比如安装一些东西,然后针对这个容器进行创建新的镜像
docker commit -m "change somth" -a "somebody info" image_id (通过docker images获取id) 新镜像名字
例如:
docker commit -m "install httpd" -a "Aming" 2c74d574293f aming/centos
#这个命令有点像svn的提交,-m 加一些改动信息,-a 指定作者相关信息 2c74d这一串为容器id,再后面为新镜像的名字
6.基于本地模板导入创建镜像
模块获取地址:http://openvz.org/Download/templates/precreated
cat centos-6-x86_64-minimal.tar.gz |docker import - cnetos-6-x86_64
#使用一个centos6模板导入
docker images #查看导入文件
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
cnetos-6-x86_64 latest f4bd4fe45d33 About a minute ago 326.4 MB
docker save -o centos.tar docker.io/centos
#把现有镜像,导出为一个文件,前面的生成的文件名,后面的源镜像
ll -h #生成的文件在当前目录下
-rw-r--r-- 1 root root 195M 3月 17 14:56 centos.tar
我们还可以用该文件恢复本地镜像:
docker load --input centos.tar 或者
docker load < centos.tar
docker push centos.tar
#可以把自己的镜像传到dockerhub官方网站上去,但前提是需要先注册一个用户,后续如果有需求再研究吧