docker基础(docker简介、docker原理、docker安装)

一、docker简介

什么是虚拟化

在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网 络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更 好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指 的虚拟化资源包括计算能力和资料存储。

在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用, 透明化底层物理硬件,从而最大化的利用物理硬件 ,对资源充分利用。

虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip)、桌面虚拟化、服务虚拟 化、虚拟机等等。

什么是docker

Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余
项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了
Apache 2.0 协议,项目代码在 GitHub 上进行维护。
Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux
容器(LXC)等技术。

在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。

二、docker能做什么

搭建测试环境,例如我们运行自动化测试的环境,随用随建,不用即仍,保证测试环境的一致,避免因环境原因造成的互相甩锅~,搭建各类基础服务,例如mysql,Jenkins等,极大降低学习成本!

三、docker与虚拟机的区别?

docker和虚拟机最大的不同,docker共用宿主机的内核,虚拟机中每个虚拟机中有单独的内核虚拟出来,如下图所示;

docker不能做后端兼容性测试,因为其没有独立的虚拟内核。

容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。

![image-20210329162325245]([08F37F24C26F4C38B72134AE5E483940]
docker基础(docker简介、docker原理、docker安装)插图

使用docker进行操作,没有直接调用系统内核,而是经过系统调用内核:一种场景理解:

安装了不同centos镜像,实际内核有可能是Ubantu的。

四、docker优缺点

云计算兴起后,服务器硬件扩展非常便利,软件服务部署成为了瓶颈,大多数Docker容器只需要不到1秒中即可启动。由于去除了管理程序的开销,Docker容器拥有很高的性能,同时同一台宿主机中也可以运行更多的容器,使用户尽可能的充分利用系统资源。

使用Docker,开发人员只需要关心容器中运行的应用程序,而运维人员只需要关心如何管理容器。Docker设计的目的就是要加强开发人员写代码的开发环境与应用程序要部署的生产环境一致性。

Docker的目标之一就是缩短代码从开发、测试到部署、上线运行的周期,让你的应用程序具备可移植性,易于构建,并易于协作。

轻量级:因为docker不用虚拟化内核,直接共享宿主机的内核,所以节省了很多资源,在同样的资源下可以启动更多的软件,同时启动速度也更快。

docker的优点也是它的缺点,正是因为所有的容器都共享一个内核,如果其中一个容器将内核给"搞坏了",那所有的容器就都无法正常工作了。

容器的启动可以在秒级实现,必虚拟机快得多。

对系统的资源利用率很高,一台主机可以同时运行数千个docker容器,让开发、测试、线上环境部署非常便利。

可以在任意平台运行,物理机、虚拟机、公有云、私有云、个人电脑上运行,从而实现更轻松的迁移和扩展。

docker基础(docker简介、docker原理、docker安装)插图1

五、docker的关键技术

隔离技术

1、NameSpace
每启动一个docker进程就会分配一个网络名称空间,进行网络的隔离

2、联合文件系统
能够给每一个容器提供单独的视图,达到文件目录的隔离,这样就不会访问到其他容器的文件

3、Cgroups
资源隔离,限定当前进程使用资源大小,达到资源的隔离。

六、镜像、容器、仓库的关系

docker基础(docker简介、docker原理、docker安装)插图2

docker镜像: 一个只读的模板,用来创建docker容器,

一个镜像可以包含一个完整的ubuntu操作系统环境,包括用户安装的应用程序等。

用户可以下载别人做好的镜像或者官方下载的镜像使用。

docker容器

容器是镜像创建运行的实例,可以进行启动、开始、停止、删除,每个容器都是相互隔离的,保证平台的安全。docker使用容器运行应用。

docker容器类似一个简易版的linux环境,包含root用户权限、进程空间、用户空间、网络空间和运行在其中的应用程序。

docker仓库:集中存放镜像文件的地方,分为公有仓库和私有仓库

docker基础(docker简介、docker原理、docker安装)插图3

七、docker的安装

Docker 提供了两个版本:社区版 (CE) 和企业版 (EE)。

以Centos7为例,且Docker 要求操作系统必须为64位,且centos内核版本为3.1及以上。

查看系统内核:

uname -r

准备工作

卸载旧版本:

yum remove docker docker-common docker-selinux docker-engine yum remove docker-ce

卸载后将保留 /var/lib/docker 的内容(镜像、容器、存储卷和网络等)。可以使用rm -rf /var/lib/docker 删除

安装依赖软件包

yum install -y yum-utils device-mapper-persistent-data lvm2

#安装前可查看device-mapper-persistent-data和lvm2是否已经安装

rpm -qa|grep device-mapper-persistent-data

rpm -qa|grep lvm2

设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

更新yum软件包索引

yum makecache fast

安装最新版本:

yum install docker-ce -y

安装完成之后查看:

docker version

原创内容,禁止转载
程序员知识精选 » docker基础(docker简介、docker原理、docker安装)