Docker 是一个基于GO语言开发的开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架或包括系统。
Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc。Redhat 已经在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 产品中广泛应用。
Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术。
在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。
下面对比了Docker 和传统虚拟化(KVM、XEN等)方式的不同之处,容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件的基础上,虚拟出自己的系统,再在系统上部署相关的APP应用。
下图为传统虚拟化方案:
如下为Docker虚拟化方案:
Docker虚拟化有三个概念需要理解,分别镜像、容器、仓库。
跟传统VM比较具有如下优点:
运行时的性能可以获取极大提升,管理操作(启动,停止,开始,重启等等) 都是以秒或毫秒为单位的。
你会拥有足够的"操作系统",仅需添加或减小镜像即可。在一台服务器上可以布署100~1000个Containers容器。但是传统虚拟化,你虚拟10-20个虚拟机就不错了。
开源的,免费的,低成本的。由现代Linux内核支持并驱动。注* 轻量的Container必定可以在一个物理机上开启更多"容器",注定比VMs要便宜。
正在越来越受欢迎,包括各大主流公司都在推动docker的快速发展,性能有很大的优势。
跟传统VM比较具有如下缺点:
目前知道的人比较少
相关的技术资料欠缺
Go语言还没完全成熟
要安装Docker CE,您需要CentOS 7及以上版本。
较旧版本的Docker被称为docker
或docker-engine
。如果已安装这些,请卸载它们以及相关的依赖项。代码如下
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine`
注意 "\"为shell脚本的连接符,同java的"+"
如果系统未安装过docker,则提示如下:
在新主机上首次安装Docker CE之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。
设置存储库
1.安装所需的包。yum-utils
提供了yum-config-manager
,并且devicemapper
存储驱动程序依赖device-mapper-persistent-data
和lvm2
。
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
执行结果:
2.使用以下命令设置稳定存储库。即使你还想从edge或test存储库安装构建,你仍然需要稳定的存储库。
$ sudo yum-config-manager --add -repo https://download.docker.com/linux/centos/docker-ce.repo
执行结果:
3.(可选)启用edge和test存储库。这些存储库包含在docker.repo
上面的文件中,但默认情况下处于禁用状态。您可以将它们与稳定存储库一起启用。
$ sudo yum-config-manager --enable docker-ce-edge
$ sudo yum-config-manager --enable docker-ce-test
您可以通过运行带有标志的命令来禁用edge或test存储库 。要重新启用它,请使用该标志。以下命令禁用edge存储库。yum-config-manager``--disable``--enable
$ sudo yum-config-manager --disable docker-ce-edge
注意:从Docker 17.06开始,稳定版本也会被推送到边缘并测试存储库。 安装DOCKER CE
安装_最新版本_的Docker CE,或转到下一步安装特定版本:
$ sudo yum install docker-ce
如果提示接受GPG密钥,请验证指纹是否匹配
060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
,
如果匹配 ,则接受它。
此处确认无误,选择y确定:
指纹比对正确,选择y继续:
最终结果:
2.您还可以使用$ sudo yum install docker-ce-<版本号>
来安装指定版本的docker,例如安装17.06版本
$ sudo yum install docker-ce-<17.06>
3.启动Docker。
$ sudo systemctl start docker
注意:docker启动后不会有任何输出
4.docker
通过运行hello-world
映像验证是否已正确安装。
$ sudo docker run hello-world
执行命令后如果你看到如下图所示,那么恭喜,docker安装成功!