Docker详细介绍(1)
通过利用Docker的发版、测试和部署代码的方法,您可以显著减少编写代码和在生产中运行代码之间的延迟。这很明显是得不偿失的,于是Docker诞生了,使用了容器技术,自带隔离机制,将系统资源利用到极致,同时只需要最核心的环境和需要的服务,轻巧,几M,开启秒级。是一个只读的模板,类似于安装系统用到的那个iso文件,我们通过镜像来完成各种应用的部署。它可以被启动、开始、停止、删除等操作,每个容器都是相互
一、背景
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容器实例
更多推荐
所有评论(0)