Docker容器技术是指Docker作为一个由GO编写的软件运行的“容器”(Linuxcontainers,LXCs)
信息丰富的容器化:概念、架构和技术发展
起源和里程碑:早在2008年,LinuxContainer(LXC)就挑战了Docker的前身、当时的Cgroups和命名空间技术奠定了基础。今年,Linux主线集成了这两种技术,为后续的容器革命铺平了道路。
变得更好:2009年,CloudFoundry和dotCloud基于LXC并催生了Warden和Docker等早期容器工具。然而,Docker并没有立即引起太多关注。到了2013年,以“一次构建,随处运行”为口号的开源版Docker大受欢迎,也在容器领域站稳了脚跟。Kubernetes也成为云平台的主流选择。
竞争与开放标准:2015年,面对Docker的统治地位,Google和Redhat推动了OpenContainerInitiative(OCI)标准的诞生,挑战者不再依赖Docker,转向更开放的CRI接口。Kubernetes此时也调整了策略,不再默认支持Docker,而是朝着更加兼容和开放的方向发展。
Docker和Containerd的历史:Docker贡献了Containerd和runC。runC是一个基于OCI的执行器,Containerd负责管理runC。值得注意的是,Docker(现在称为Moby)的未来方向仍然充满变数。
runC和containerd的分工:runC是执行容器操作的关键组件。它负责实际的容器化工作,而Containerd提供了统一的接口进行管理和部署协调runC,它将容器比作一个包含应用程序和依赖项的“水族馆”,清楚地展示了容器的工作原理。
容器和镜像:构建和运行:容器镜像就像一个预构建的软件包,其中包含应用程序及其依赖项。通过简单的Docker命令,用户就可以创建并运行一个完整的运行环境,就像启动一个后台进程一样。
宿主机角度的容器
容器是一个独立的后台进程。一旦启动,主机只能看到其进程标识符。使用dockerexec命令我们可以深入容器并与容器交互。进入容器的进程
进入容器后,可以在其中启动新的进程,这进一步加强了容器的隔离功能。容器视角与宿主机视角对比:从容器来看,启动的进程独立于宿主进程,但PIDNamespace保证了容器中的PID在不同的进程上不同。主人。每个容器都有自己独立的PID范围,保证了进程号的唯一性和隔离性。
容器技术的细化定义:容器是Linux命名空间技术的巧妙应用。隔离性使它们能够与主机和其他容器区分开来。简单来说,它是一个利用命名空间技术实现进程独立的运行环境。
上一篇:云计算发展背景和趋势
下一篇:容器技术的三大好处