夺命三连问:
什么是容器?
容器用在哪里?
容器解决了什么问题?

1.Docker介绍
Docker是一个开源的容器运行时软件(容器运行时是负责运行容器的软件),基于Go语言编写,并遵从Apache2.0协议开源。Docker可以让开发者打包自己的应用以及依赖到一个轻量的容器中,然后发布到任何流行的Linux系统上(docker主要理念:一次封装随处运行)Docker的思想来源于集装箱,让容器与容器之间相互隔离,与系统相互隔离提高程序之间的安全,更重要的是容器性能开销极低。 docker官网:www.docker.com
截屏20221011 11.26.19.png

2.Docker组成部分
镜像(images):用来创建容器的模板(静态文件),一个镜像可以创建多 个容器(容器动态)
容器(container): 程序的载体,程序运行在容器中,每个容器相互隔 离,互不影响,但可以相互通讯
仓库(Repository):集中存放镜像的场所,仓库分为公开仓库(public) 和私有仓库(private)两种
最大的公开仓库为docker hub:https://hub.docker.com 国内的公开仓库包括:阿里、网易、中科大等

3.容器应用场景
容器非常适合持续集成和持续交付(CI/CD)工作流程,请考虑以下示例方案:您的开发人员在本地编写代码,并使用Docker容器与同事共享他们的工作。他们使用 Docker 将其应用程序推送到测试环境中,并执行自动或手动测试。当开发人员发现错误时,他们可以在开发环境中对其进行修复,然后将 其重新部署到测试环境中,以进行测试和验证。测试完成后,将修补程序推送给生产环境,就像将更新的镜像推送到生产环境一样简单。

4.Docker资源汇总
Docker 官方主页: https://www.docker.com
Docker 官方博客: https://blog.docker.com/
Docker 官方文档: https://docs.docker.com/
Docker Store(镜像文件库): https://store.docker.com
Docker Cloud(云平台文档): https://cloud.docker.com
Docker Hub: https://hub.docker.com
Docker 的源代码仓库: https://github.com/moby/moby
Docker 发布版本历史: https://docs.docker.com/release-notes/
Docker 常见问题: https://docs.docker.com/engine/faq/
Docker 远端应用 API: https://docs.docker.com/develop/sdk/

5.Kubernetes为什么放弃Docker
Kubernetes是今天容器编排领域的执行标准(我说的算),而Docker从诞生之日到今天都在容器中扮演着举足轻重的地位,也都是Kubernetes中的默认容器运行时(容器运行时是负责运行容器的软件)。
而在2020年12月,Kubernetes社区决定着手移除仓库中Dockershim相关代码,这对于Kubernetes和Docker两个社区来说都意义重大。我们可以使用 Kubernetes管理Docker容器,但是可能没有听说过Dockershim,即Docker垫片。
截屏20221011 11.28.11.png
如上图所示,Kubernetes 中的节点代理 Kubelet 为了访问 Docker 提供的 服务需要先经过社区维护的 Dockershim,Dockershim 会将请求转发给管 理容器的 Docker 服务。
容器运行时接口(Container Runtime Interface、CRI)是Kubernetes在1.5中引入的新接口,Kubelet可以通过这个新接口使用各种各样的容器运行时。Docker没有支持也不打算支持Kubernetes的CRI接口,这样我们就能猜测出Kubernetes社区从代码仓库移除Dockershim的原因。
你Docker当初火的时候,我为了妥协你,我在自己官方代码里增加一个 Dockershim(垫片)来支持你Docker,但是今天我已经是容器编排领域 的执行标准,而你不支持我的CRI接口(不给我面子)那我就不在需要你了!!!
kubernetes在1.20版本以后真正移除的是Docker的容器运行时,但是并没 有移除Dockershim(垫片),但是在Kubernetes1.24版本中,连Dockershim也彻底移除了,这也就代表着kubernets版本1.24以后彻底与Docker进行了剥离。
Kubernetes 支持使用的几种通用容器运行时软件:
Podman containerd CRI-O Docker
还有必要学习Docker嘛? 从未来的知识变现来看,Docker已是昨日黄花。
从目前市场分析来看,Docker的市场占有率还是非常的高。

上一篇 下一篇