标签:docker
1.docker简介
容器虚拟化,比传统虚拟化轻量
2013年出现,发展非常迅猛
Redhat在6.5版本开始支持docker
使用GO语言开发,基于apache2.0协议
开源软件,项目代码在github维护
2.容器虚拟化和传统虚拟化比较
3.Docker的优势
启动非常快,秒级实现
资源利用率很高,一台机器可以跑上千个docker容器
更快的交付和部署,一次创建和配置后,可以在任意 地方运行
内核级别的虚拟化,不需要额外的hypevisor支持,会有更高的性能和效率
易迁移,平台依赖性不强
4.Docker核心概念
镜像,是一个只读的模板,类似于安装系统用到的那个ISO文件,我们通过镜像来完成各种应用的部署
容器,镜像类似于操作系统,而容器类似于虚拟机本身。它可以被启动、开始、停止、删除等操作,每个容器都是相互隔离的。
仓库,存放镜像的一个场所,仓库分为公开仓库和私有仓库。最大的公开仓库是Docker hub(hub.docker.com),国内公开仓库(dockerpool.com)
5.Docker安装
centos6 上安装(6.5之前版本需要升级一下 yum update )
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-6.repo
yum clean all
yum makecache
#安装阿里yum源及扩展源
yum install -y docker-io #centos6
yum install -y docker #如果是centos7
/etc/init.d/docker start #centos6启动,需要docker -d 一下
systemctl start docker #centos7启动
相关报错:
docker: relocation error: docker: symbol dm_task_get_info_with_deferred_remove, version Base not defined in file libdevmapper.so.1.02 with link time reference
解决:
yum upgrade device-mapper-libs
6.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 #查看所有容器,包括已经退出的。
7.基于已有镜像的容器创建镜像
运行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,再后面为新镜像的名字
8.基于本地模板导入创建镜像
模块获取地址: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官方网站上去,但前提是需要先注册一个用户,后续如果有需求再研究吧
本文出自 “抚琴煮酒” 博客,请务必保留此出处http://szk5043.blog.51cto.com/8456440/1827180
标签:docker
原文地址:http://szk5043.blog.51cto.com/8456440/1827180