今天查了一下,发现有一篇论文关于 Docker 和 Jail 测评的论文:https://www.diva-portal.org/smash/get/diva2:1453017/FULLTEXT01.pdf , 同时在 FreeBSD 论坛中有讨论这篇论文: https://forums.freebsd.org/threads/freebsd-jails-vs-docker-a-scientific-approach.85928/

根据论文和论坛中的讨论有:

1. OCI(Open Container Initiative, docker 的协议) 和 Jail 的原理都是 chroot,属于旧瓶装新酒了。

2. 从论文的数据来看,除了单个网络的服务,其他的时候 Docker 的性能都要比 Jail 好很多。但是很多 FreeBSD 的用户对这个数据表示怀疑:

a. 论文的 benchmark 环境是 AMD 的 CPU, 而 FreeBSD 在 Interl 的 CPU 上性能更好.

b. 测试时没有使用 ZFS 文件系统,而 FreeBSD 对 ZFS 支持更好。

3. Container 适用的场景是 one container for one service, 而 jail 是用的场景是 one jail for multiple processes。

4. Container 中的数据无法保存,而 jail 中的数据可以保存,做持久化存储。

Reply to this note

Please Login to reply.

Discussion

虽然但是,container 又不是只有 docker 一种实现,因为 docker 的网络使用的是 iptables 转发,在 RPM 系的 OS 上还好,在 Ubuntu 上体验就比较差。所以最后的选择是:Podman(这个还是需要具体验证对比一下)