docker的理念:1次镜像,处处运行

docker概念:Docker是基于Go语言实现的云开源项目 主要目标:“Build,Ship and Run Any App,Anywhere”

容器与虚拟机比较: 1.传统的虚拟机有一些缺点:资源占用多、冗余步骤多、启动慢

由于前面虚拟机存在某些缺点,Linux发展出了另一种虚拟化技术:
Linux容器(LinuxContainers,缩写为 LXC)。
    1.容器提供的镜像包含了应用的所有依赖项,因而在从开发到测试再到生产的整个过程中,它都具有可移植性和一致性
    2.Linux容器不是模拟一个完整的操作系统而是对进程进行隔离
    3.容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件工作所需的库资源和设置 。


2.传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;

3.容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。

4.每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。

docker的优势:一次构建 处处运行 1.更快速的应用交付和部署 2.更便捷的升级和扩缩容 3.更简单的系统运维 4.更高效的计算资源利用

docker和podman比较 注:Podman是一个无守护进程的容器引擎

1、守护进程
Docker使用守护进程,一个正在后台运行的程序,来创建镜像和运行容器。
Podman是无守护进程的架构,这意味着它可以在启动容器的用户下运行容器。

2、安全性
Podman允许容器使用Rootless特权。Rootless容器被认为比Root特权的容器更安全。
在Docker中,守护进程拥有Root权限,这使得它们易成为攻击者的首选入侵点。
Podman中的容器默认情况下不具有Root访问权限,这在Root级别和Rootless级别之间添加了一个自然屏障,提高了安全性。
不过,Podman可以同时运行Root容器和Rootless容器。

3、镜像构建
作为一款自给自足的工具,Docker可以自己构建容器镜像。
Podman则需要另一种名为Buildah的工具的辅助。

4、多合一和模块化
Docker是一个独立的、强大的工具,在整个循环中处理所有的容器化任务,有优点也有缺点。
Podman采用模块化的方法,依靠专门的工具来完成特定的任务。