docker 介绍

Docker 介绍

Docker 定义: Docker是一个开源的​​应用容器引擎​​,基于Go语言开发,旨在通过容器化技术解决环境不一致问题。它将应用程序及其依赖(如代码、库、配置文件等)打包到一个轻量级、可移植的容器中,实现"一次构建,到处运行"(Build Once, Run Anywhere)。

**​​核心目标​​:**标准化应用交付流程,消除开发、测试、生产环境差异,提升开发与运维效率。

Docker 优缺点

优点:

1.快速部署

运行时的性能快,管理操作(启动,停止,开始,重启等等)都是以秒或毫秒为单位的。

2.敏捷

像虚拟机一样敏捷,而且会更便宜,在baremeta1(裸机)上布署像点个按钮一样简单。

3.灵活

将应用和系统"容器化",不添加额外的操作系统。

4.轻量级

在一台服务器上可以布署100~1000个Containers 容器。

5.开源免费

开源的,免费的,低成本的。

缺点:

1.安全风险

所有容器共享 linux kernel 资源,资源能否实现最大限制利用,所以在安全上也会存在漏洞。

2.性能问题

I/O 和网络性能略低于裸机。

K8S 弃用Docker的原因

K8S 版本与其使用的容器运行时:

  • k8s 1.24 版本之前用docker作容器运行时
  • k8s 1.24版本和1.24之后的版本后使用containerd作容器运行时

Docker 与 Containerd 的关系

1.Containerd 是 Docker 的核心组件

  • 自 Docker 1.11版本后,Docker将容器运行时功能剥离为独立的 Containerd 项目,作为其底层引擎,负责容器的生命周期管理。
  • 架构层级:docker 的完整调用链为 Docker CLI > Docker Daemon > Container > runC,其中Containerd 承担实际容器操作,Docker 提供高层封装(如镜像构建、网络管理)

2.Containerd 的独立性

2017 年,Containerd 被捐赠给云原生计算基金会(CNCF),成为独立项目,但仍与 Docker 兼容。它可直接被 Kubernetes 等编排系统调用,无需依赖 Docker Daemon。

Containerd 取代 Docker 的原因

1.K8S的生态适配

简化调用链:K8S通过CRI(容器运行时接口)直接调用Containerd,无需经过Docker Daemon、 dockershim适配层,减少调用链,可减少性能损耗和维护成本。

2.性能与资源效率

性能优化:Containerd 比Docker 更加轻量级,启动容器更快、占用资源更少。

3.云原生趋势

职责分离:云原生提倡模块化,Containerd 专注容器运行时,而Docker用于镜像构建。

相关推荐
一直在努力学习的菜鸟6 小时前
Docker Info 详细解析(Rocky Linux 8.10 / Docker 29.8.1)
docker
小马同学-6 小时前
crictl实战:K8s容器运行时排障工具
容器·k8s·crictl
富士康质检员张全蛋6 小时前
Kafka Connect-Standalone 模式
k8s
AlfredZhao7 小时前
Docker 删除 none 镜像:一次真实的清理记录
docker
bosins17 小时前
WSL2 启动即崩溃?调整超时参数解决 Docker 阻塞问题
linux·docker·wsl
一直在努力学习的菜鸟19 小时前
Docker 完整知识体系图
docker
java_logo1 天前
Docker 部署 Gotenberg 完整教程:Compose 搭建文档转 PDF API
docker·pdf·chromium·libreoffice·文档转换·轩辕镜像·gotenberg
闲云野鹤在人间1 天前
docker 入门 | 第7章 容器监控 和 第8章 容器日志 详解
运维·docker·容器·架构·云计算
Experience-摆渡1 天前
开源RAG知识库WeKnora深度调研:让知识自己长成体系
爬虫·docker·开源·rag
闲云野鹤在人间1 天前
docker 入门 | 第5章 网络详解
网络·docker·架构·华为云·php