Docker的原理和安装

来源:互联网 发布:淘宝店主有话说范文 编辑:程序博客网 时间:2024/06/08 11:02

Docker的原理

为什么docker这么火,因为它符合互联网的要求“快”。

在前面博文中对互联网的“快”我有过自己的理解,“快”分为两个方面:性能快和使用快。

 

先看性能快:主要是与虚拟机技术做对比的,docker通过文件隔离的方式来实现的,vm是软件模拟硬件,docker是直接共享物理硬件资源。

先搞明白3个玩意:

docker环境。在在linux上安装一个环境,用来管理下面的镜像和容器

Image镜像。跟vm的系统镜像文件概念类似,都是只读的。

Container容器。操作系统角度来理解,就像是利用镜像文件创建了个系统,Java角度来理解,就是利用Spring boot项目java –jar启动了一个程序。这层是我们真正未来的工作区,是可读写的。

找来找去,还是下面这个图最能解释ImageContainer的关系


相同的Container可以共享底层的只读文件系统(同一个Kernel),使得你可以跑N多个Container而不至于你的硬盘被挤爆了!这个只读的层就是Image!而如你所看到的,一个可写的层就是Container

采用Docker后,一台Linux可以跑十几二十几个docker容器,而且容器直接使用物理机的硬件资源,比起跑3-4VM而且还得通过虚拟软件方式来使用硬件资源,高低立断。



再看使用快:Docker的共享、传播、容器创建太方便了。

举个例子,Spring微服务结点是高可用性的,同一个项目要通过多个结点来部署。

假如采用vm的方式,先装一个linuxvm,安装好java homespringjar包,然后做成镜像,再去另一个vm里通过镜像恢复OS出来。

假如采用docker的方式,先装好docker的环境(我们可以提前准备好带有docker环境的linux镜像),然后下载带有java homedocker镜像,启动该java镜像的容器,然后上传spring jar包到容器中,把此时的容器重新创造成一个新的镜像。这样无论后续再创建多少个服务节点,只要利用这个新docker镜像启动容器就可以了。

两者相比:

docker容器的启动是秒级别的,VM的镜像恢复是几十分钟级的;

VM镜像文件的大小是G级别的,docker中一个容器的传播就是一条命令或者一个build的文本文件。



Docker的安装:

LinuxOS版本:CentOS-7-x86_64

安装好后,习惯性关闭图形化界面,既然了使用linux,我们就玩纯命令行的。

命令:su root

命令:systemctl set-default multi-user.target

命令:reboot

重启后再来,舒服多了!

root用户重新登录,更新yum

命令:yum –y update

安装docker

命令:yum –y install docker-io

命令:su docker用户

docker用户启动docker环境

命令:service docker start//启动docker

检查是否启动成功

命令:docker version//查看docker版本

命令:chkconfig docker on //加入开机启动

Dockercentos上的安装到此位置,下篇我们将学习常用的docker命令。