这几天业余时间简单的学习了一下docker,这个东西是Linux容器的一种封装,然后提供简单易用的容器接口, 这个东西有点像轻量级的虚拟机, 能够将应用程序和该程序需要的依赖打包在一个文件里面, 运行的时候就会生成一个虚拟容器,让程序在里面运行而不用担心环境问题。 既然有虚拟机了,那为啥要用docker呢? docker成本开销要比虚拟机小的多。 这篇文章就来初识一下docker,顺便在之前的Linux系统上安装一下
要想了解docker的来龙去脉,还得先从环境配置的难题开始, 软件开发最大的困难之一就是环境配置, 如果想让某个软件在各个计算机上运行, 就需要保证操作系统的设置和各种依赖库和组件都齐全,这样软件才能运行。比如装一个python应用, 计算机必须有python引擎,还得有各种依赖,还要设置环境变量等。 即环境配置是一个麻烦事,并且还有个头疼的事情就是,好不容易在一台计算机上配置好了环境,应用也能正常跑起来了, 如果这时候换一台计算机,就需要重新配置环境, 那就更麻烦了,所以有些人就想, 安装软件的时候,能不能把所需要的环境啊,包啊啥的一块弄过来, 这样换了机器,也不用人工再配置环境,应用就直接能跑呢? 就类似于Windows里面的绿色版软件。 这就要谈到虚拟机了。
虚拟机我们应该都清楚了, 前面整个大数据环境的搭建就是依赖于虚拟机, 虚拟机就是环境安装的一种解决方案, 可以在一个系统运行另一个系统,比如我前面就是Windows里面运行的3个Linux系统,这三个系统用起来和真实系统一模一样,应用程序毫无感知。 对于底层的系统来说,虚拟机就是一个普通的文件, 虚拟机运行需要的各种环境会放到一个文件夹里, 如果想运行,就直接能打开, 不需要了就直接删掉。 如果想在别的机器上运行,只需要把整个文件夹复制, 这时候,虚拟机就可以直接在别的机器上跑。 这样就非常的方便了。虚拟机就实现了一种自带环境的方案。 But,有几个缺点:
所以,针对虚拟机上面的这些缺点, Linux发展出了另一种虚拟机技术: Linux容器(Linux Containers, LXC)。
Linux容器不是模拟一个完整的操作系统,而是对进程进行隔离。 或者说,在正常的进程外面套了一个保护层。对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层系统的隔离。注意, 容器是进程级别的。有下面几个优势:
总之, 容器有点像轻量级的虚拟机, 能够提供虚拟化的环境, 但成本开销小得多。
有了上面的铺垫,下面就是docker了。
Docker就是Linux容器的一种封装, 提供简单易用的容器使用接口,是目前比较流行的Linux容器解决方案。 Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。总体来说,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。
关于docker, 三种重要部件:
简单的了解之后, 就来安装。
打开master虚拟机, rank开始。 具体安装可以参考CentOS文档。
Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker , 输入命令uname -r
先查看下内核版本。更新下yum yum update
如果安装过旧版本,需要卸载。
sudo yum remove docker docker-common docker-selinux docker-engine
这里我使用yum
命令出现了一个报错:
然后就是我各种yum命令都不能用了, 即使输入yum, 也会报错: No module named "yum"
。 这个原因是这样, 安装的yum和python版本不匹配了, 因为我当时修改过Linux自带的python版本
发现这里有两个python, yum当时的python是2.x版本的,也就是这里的python2, 而上面那几个文档了里面解析的时候都是用的python(也就是python3)解析的,所以会报语法错误。 于是,要么修改这里的python超链接, 要么改具体的文件, 比如yum命令: gedit /usr/bin/yum
其他几个报错都是这里的问题, 需要在文件的开头改一下python解释器。 后面就一路顺风了。
安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
设置yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
显然查看一下所有仓库中的docker版本, 选择特点的版本或者最新的稳定版本:
sudo yum install docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
sudo yum install <FQPN> # 例如:sudo yum install docker-ce-17.12.0.ce
下面启动docker服务,并加入开机启动:
systemctl start docker
systemctl enable docker # 这个是开机启动
验证安装是否成功 docker version
.
这时候就把docker安装成功了。这个东西相对简单些。 docker先安装到这里,很多参考了下面的两篇文章, 具体用到的时候再具体学docker的用法。
参考: