1.docker介绍
1.1 虚拟化技术和相关概念
在计算机中,虚拟化(Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象转换后呈现出来,打破实体结构间不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部门是不受现有资源的架设方式,地域或物理组态所限制。一般所说的虚拟化资源包括计算能力和存储资料。
在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件 对资源充分利用。
虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip)、桌面虚拟化、服务虚拟化、虚拟机等等。(比如一台服务器可以虚拟化成10台机器)
kvm:开源的免费的,Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。装在linux系统上可以虚拟化出更多系统
exsi:vmware商用的,装在裸机上,不需要装在linux系统上,可以虚拟化出很多机器(比如我们在网上买了一台服务器,要么是基于exsi,要么是基于kvm)
openstack:是用python开发的一个云平台管理的项目。用来管理虚拟机的软件。
k8s:多机容器管理,容器编排
容器:一个容器镜像是一个可运行的软件包,其中包含了一个完整的可执行程序,包括代码和运行时需要应用、系统库和全部重要设置的默认值。
应用程序通过使用容器与底层的宿主机架构解耦。如下图所示,我们可以利用底层机器在容器引擎之上运行多个容器。这促进了容器在各种操作系统和云场景中的部署。
1.2 docker介绍
docker:简单来说就是一种容器技术。Docker 是一个开源的应用容器引擎。其中包括,镜像、容器、仓库,很简单,目的就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的产品(可以是 web应用或者数据库应用)及其环境能够做到“一次封装,到处运行”。再通俗点说,我们使用Docker,只需要配置一次Docker容器上面的应用,就可以跨平台,跨服务器,实现应用程序跨平台间的无缝衔接。
Docker实际上就相当于一个封闭的沙盒或者是集装箱,它可以把不同的应用全都放在它的集装箱里面,并且以后有需要的时候,可以直接把集装箱搬到其他平台或者服务器上,实现容器虚拟化技术,随用随搬。
Docker 项目的目标是实现【轻量级的操作系统虚拟化解决方案】。Docker的基础是Linux 容器(LXC)等技术。
有了容器技术可以直接将集装箱(也就是镜像)在其他平台上运行,更快捷方便。只要在该集装箱上运行,放在任何平台都没问题。所以开发人员可以直接在虚拟机上开发,也可以直接在docker上开发。
1.3 docker客户端和服务端通信
Docker是一个客户端-服务器(C/S)架构程序。Docker客户端只需要向Docker服务器或者守护进程发出请求,服务器或者守护进程将完成所有工作并返回结果。Docker提供了一个命令行工具Docker以及一整套RESTful API。你可以在同一台宿主机上运行Docker守护进程和客户端,也可以从本地的Docker客户端连接到运行在另一台宿主机上的远程Docker守护进程。
2.容器和虚拟机的比较
docker与虚拟机的区别:
1、docker启动快速属于秒级别,而虚拟机通常需要几分钟去启动;
2、性能损耗不同,docker需要的资源更少;
3、隔离性不同,docker属于进程之间的隔离,隔离性较弱,而虚拟机可以实现系统级别的隔离。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:docker-docker介绍 - Python技术站