docker是什么

Docker是一个开源项目,提供轻量级的虚拟化,基于Linux内核的容器技术。相比虚拟机,Docker在交付速度、资源消耗上更具优势,通过统一的打包、分发和部署方式实现应用组件的“一次封装,到处运行”。其核心理念是build、ship和run,简化了部署和环境一致性问题,提高了效率,但容器间的隔离性和调试复杂性是其潜在缺点。
摘要由CSDN通过智能技术生成

Docker 是什么

Docker (码头工人)是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司(后由于 Docker 开

源后大受欢迎就将公司改名为 Docker Inc ,总部位于美国加州的旧金山)内部的一个开源的 PAAS 服务

(Platform as a ServiceService )的业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入

了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。

Docker 是基于 Linux 内核实现,Docker 最早采用 LXC 技术 ,LXC 是 Linux 原生支持的容器技术 ,可

以提供轻量级的虚拟化 ,可以说 docker 就是基于 LXC 发展起来 的,提供 LXC 的高级封装,标准的配

置方法,在LXC的基础之上,docker提供了一系列更强大的功能。而虚拟化技术 KVM(KernelKernel-

based Virtual Machine Machine) 基于 模块实现, 后来Docker 改为自己研发并开源的 runc 技术运行

容器,彻底抛弃了LXC。

Docker 相比虚拟机的交付速度更快,资源消耗更低,Docker 采用客户端/服务端架构,使用远程API来

管理和创建容器,其可以轻松的创建一个轻量级的、可移植的、自给自足的容器,docker 的三大理念是

build(构建)、ship(运输)、 run(运行),Docker遵从apache 2.0协议,并通过(namespace及cgroup

等)来提供容器的资源隔离与安全保障等,所以Docke容器在运行时不需要类似虚拟机(空运行的虚拟

机占用物理机6-8%性能)的额外资源开销,因此可以大幅提高资源利用率,总而言之Docker是一种用了

新颖方式实现的轻量级虚拟机.类似于VM但是在原理和应用上和VM的差别还是很大的,并且docker的专

业叫法是应用容器(Application Container)。Docker 的主要目标

Build, Ship and Run Any App, Anywhere,即通过对应用组件的封装(Packaging)、分发

(Distribution)、部署(Deployment)、运行(Runtime)等生命周期的管理,达到应用组件级别的

“一次封装,到处运行”。这里的应用组件,既可以是一个Web应用,也可以是一套数据库服务,甚至是

一个操作系统。将应用运行在Docker 容器上,可以实现跨平台,跨服务器,只需一次配置准备好相关的

应用环境,即可实现到处运行,保证研发和生产环境的一致性,解决了应用和运行环境的兼容性问题,

从而极大提升了部署效率,减少故障的可能性

使用Docker 容器化封装应用程序的意义统一基础设施环境-docker环境

硬件的组成配置

操作系统的版本

运行时环境的异构

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

java 程序

go 程序

python 程序

nodejs 程序

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

java-jar...→ docker run...

go 二进制程序 → docker run...

python manage.py runserver... → docker run...

npm run dev ... → docker run..Docker 的优势

快速部署: 短时间内可以部署成百上千个应用,更快速交付到线上

高效虚拟化: 不需要额外hypervisor支持,基于linux内核实现应用虚拟化,相比虚拟机大幅提高性

能和效率

节省开支: 提高服务器利用率,降低IT支出

简化配置: 将运行环境打包保存至容器,使用时直接启动即可

环境统一: 将开发,测试,生产的应用运行环境进行标准化和统一,减少环境不一样带来的各种问

快速迁移和扩展: 可实现跨平台运行在物理机、虚拟机、公有云等环境,良好的兼容性可以方便将

应用从A宿主机迁移到B宿主机,甚至是A平台迁移到B平台

更好的实现面向服务的架构,推荐一个容器只运行一个应用,实现分布的应用模型,可以方便的进行横

向扩展,符合开发中高内聚,低耦合的要求,减少不同服务之间的相互影响

1.1.9 Docker 的缺点

多个容器共用宿主机的内核,各应用之间的隔离不如虚拟机彻底

由于和宿主机之间的进程也是隔离的,需要进入容器查看和调试容器内进程等资源,变得比较困难和

繁琐

如果容器内进程需要查看和调试,需要在每个容器内都需要安装相应的工具,这也造成存储空间的重

复浪费

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值