一、背景

        Docker肯定是为了满足用户某些痛点才会诞生并广泛流行的,我们来看一下没使用Docker之前我们是不是经常遇到这种问题:

        1.配置环境繁琐:环境配置很麻烦,每个机器都要重复部署操作,费时费力

        2. 不能保证每个程序的运行环境一致:发布一个项目,在这个环境好使,换一个不好使,发布包能不能带着环境来打包?

        3. 配置的环境参数不能直接跨平台拷贝:配置应用环境不能跨平台。

        4. 应用之间会冲突:多个应用安装到环境中可能会冲突,例如端口冲突。

        为了解决这些问题,我们曾尝试使用使用虚拟机技术,但虚拟机需要安装整个系统,几个G,开机几分钟。

        这很明显是得不偿失的,于是Docker诞生了,使用了容器技术,自带隔离机制,将系统资源利用到极致,同时只需要最核心的环境和需要的服务,轻巧,几M,开启秒级。

二、Docker是什么及基本概念

1、Docker是什么

来自官网的介绍:

翻译过来就是:

        Docker是一个用于开发、交付和运行应用程序的开放平台。Docker使您能够将应用程序与基础设施分离,以便快速交付软件。使用Docker,您可以像管理应用程序一样管理基础设施。通过利用Docker的发版、测试和部署代码的方法,您可以显著减少编写代码和在生产中运行代码之间的延迟。

        通过我们上述了解的背景以及其概述,我们用一句更简单的大白话讲就是:更更更轻量化的虚拟机!!!

2、Docker的三个基本概念

(1)镜像(Image):容器的模板,用来构建容器。

是一个只读的模板,类似于安装系统用到的那个iso文件,我们通过镜像来完成各种应用的部署。一个镜像也可以创建多个容器。

(2)容器(Container):一组组服务。

镜像类似于操作系统,而容器类似于虚拟机本身。它可以被启动、开始、停止、删除等操作,每个容器都是相互隔离的。

(3)仓库(Repository):存放镜像的地址。

存放镜像的一个场所,仓库分为公开仓库和私有仓库。最大的公开仓库Docker hub(hub.docker.com),国内公开仓库(dockerpool.com),私有仓库一般是自己搭建harbor。

三、Docker特性及优缺点

1、Docker特性

        (1)文件系统隔离:每个进程容器运行在一个完全独立的根文件系统里。

        (2)资源隔离:系统资源,像CPU和内存等可以分配到不同的容器中。

        (3)网络隔离:每个进程容器运行在自己的网路空间,虚拟接口和IP地址。

        (4)日志记录:Docker将收集到和记录的每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或者批量检索。

        (5)变更管理:容器文件系统的变更可以提交到新的镜像中,并可重复使用以创建更多的容器。无需使用模板或者手动配置。

        (6)交互式shell:Docker可以分配一个虚拟终端并且关联到任何容器的标准输出上,例如运行一个一次性交互shell。

2、Docker优缺点

优点:

        (1)易于使用:Docker 的使用非常简单,基本上只需要安装 Docker 环境,就可以开始使用 Docker。

        (2)简化部署:通过Docker可以实现快速、一致性的应用部署,避免了在不同环境中进行配置和依赖管理的问题。

        (3)可移植性:Docker容器可以在不同的操作系统和平台上运行,提供了良好的可移植性。

        (4)高效隔离:Docker利用Linux内核提供的隔离机制,使得容器之间相互隔离,保证了安全性和稳定性。

        (5)环境一致性:开发、测试和生产环境可以使用相同的镜像,在不同环境之间无需担心配置差异导致的问题。

        (6)轻量级:Docker容器相对于虚拟机来说更轻量、更快速启动和停止容器,提供更高的性能。

缺点:

        (1)性能损耗:相比于直接在宿主机上运行应用程序,Docker需要额外的资源消耗来维护容器环境,可能会带来一定的性能损耗。

        (2)存储占用:每个Docker容器都包含完整的文件系统镜像,这可能会占用较多的存储空间。

        (3)容器间通信复杂性:在多个容器之间进行通信可能会比较复杂,需要额外的配置和网络设置。

        (4)安全性问题:虽然Docker提供了隔离机制,但不正确的配置和管理容器可能会导致安全漏洞。

        (5)学习成本:对于初学者来说,使用Docker需要一定的学习成本和理解容器化概念。

        (6)管理复杂:与传统的虚拟化技术相比,Docker 容器管理比较复杂。

四、Docker的工作流程

        工作流程:启动docker-->获取镜像-->启动docker容器实例

Logo

一起探索未来云端世界的核心,云原生技术专区带您领略创新、高效和可扩展的云计算解决方案,引领您在数字化时代的成功之路。

更多推荐