容器化技术(docker)和虚拟化技术

本文介绍了Docker的核心概念,如镜像、容器和仓库,强调了使用Docker的意义,包括统一基础设施环境、打包和部署方式。讨论了Docker与虚拟机的区别,指出Docker在资源占用、启动速度和隔离性方面的优势。此外,还探讨了Docker在微服务、CI/CD和PAAS产品中的应用,并提到了名称空间在提供容器隔离方面的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

docker

docker相关

Docker是一个基于go语言开发,用于开发,交付和运行应用程序的开放平台。Docker使您能够将应用程序与基础架构分开,从而可以快速交付软件。是一个开源的应用容器引擎,让开发者可以打包大门的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或者Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

将项目本身以及环境打包(镜像),直接下载镜像,直接运行

核心思想:隔离

docker容器技术也是一种虚拟机技术

相对于虚拟机技术更加轻巧

核心概念

镜像:一个面向Docker容器引擎的只读模板

容器:从镜像创建的运行实例

仓库:集中保存镜像的地方;分公有和私有仓库

使用docker的意义

docker引擎统一了基础设施环境-docker环境

docker引擎统一了程序打包(装箱)方式-docker镜像

docker引擎统一了程序部署(运行)方式-docker容器

Docker的使用场景

打包应用程序简单部署

可脱离底层硬件任意迁移(实现了应用的隔离,将应用拆分并进行解耦),例如:服务器从腾讯云迁移到阿里云

持续集成和持续交付(CI/CD):开发到测试发布

部署微服务

提供 PAAS产品(平台即服务){OpenStack的云主机类似于阿里云的ECs,属于IAAS、Docker (K8S)属于PAAS}

docker与虚拟机

虚拟机

同一个物理主机上的应用使用的是同一个库
在这里插入图片描述

缺点

资源占用较大

冗余步骤多

启动慢

docker

容器化技术不是一个完整的操作系统

每一个应用都有自己的库
在这里插入图片描述

对比

不同containerVM
启动速度秒级分钟级
运行性能接近原生5%左右的损失
磁盘占用MBGB
数量成百上千一般几十台
隔离性进程级别系统级别(更加彻底)
操作系统主要支持linux几乎所有
封装程度值之打包项目代码和依赖关系,共享宿主机内核完整的操作系统,于宿主机隔离

传统虚拟机,虚拟出一个硬件,运行一个完整的操作系统,然后再这个系统上安装和运行软件

容器内的应用直接运行在宿主机的内核,容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了

每个容器间是互相隔离,每个容器内都有一个属于自己的文件系统,互不影响。

docker的优势(DevOps开发、运维)

应用更快速的交付和部署

传统:需要大量的帮助文档、安装程序
docker:打包镜像发布测试,一键运行

更加便捷的升级和扩缩容
使用了docker后,部署应用更加简单(类似于搭积木)
项目打包为一个镜像,方便扩张

更简单的系统运维
在容器化之后,可以保证开发、测试环境高度一致

更高效的计算资源利用
docker是内核级的虚拟化,在一个物理机上可以运行多个容器实例,可以将服务器性能充分利用

名称空间(namespaces)

Docker使用一种称为namespaces提供容器的隔离工作区的技术。运行容器时,Docker会为该容器创建一组名称空间。

这些名称空间提供了一层隔离。容器的每个方面都在单独的名称空间中运行,并且其访问仅限于该名称空间。

Docker Engine在 Linux上使用以下名称空间:

pid命名空间:进程隔离(PID:进程ID)。

net命名空间:管理网络接口(NET:网络)。

ipc命名空间:管理访问IPC资源(IPC:进程间通信)。

mnt命名空间:管理文件系统挂载点(MNT: mount) 。

uts命名空间:隔离内核和版本标识符。(UTS: Unix时间共享系统)。

user命名空间:操作进程的用户和用户组

只有实现了以上6种隔离,才可以认为使用容器进行了封装

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值