如何在Docker上运行*BSD操作系统?

16

如何在Docker上运行*BSD(Open、Free等)?

我正在使用Docker for Mac。
但是Docker Hub上没有BSD镜像。
我该如何运行它?

1个回答

22

Docker实际上并没有运行完整的操作系统。它使用主机内核来运行容器内容,因此无法运行与其主机操作系统所使用的内核不同的内核。此外,据我了解,Docker依赖于Linux特定的功能进行基本操作。因此,在包括MacOS在内的其他非Linux内核环境中,无法运行它作为主机环境,实际上在Mac上,Docker在虚拟化的Linux环境中运行,因此其主机环境是Linux。

现在,理论上,如果有人能够让BSD用户空间在Linux内核上运行,可能会有一个接近BSD的Docker容器。然而,一些研究表明,尚未成功地完成这样的项目。

所有这些意味着没有办法运行真正的BSD作为Docker镜像,这就是为什么没有BSD镜像可用于Docker的原因。


8
除了这个回答之外,如果你需要类似的东西(在单个内核下运行分离的用户空间),对于FreeBSD来说,它有Jails - cynic
4
Docker正在摒弃Linux特定的功能,转而依赖于OCI runtime spec。现在,Windows也有了OCI实现,因此Docker可以在Windows容器上运行。不过,OCI仍然严重依赖于内置于Linux中的容器功能。 - Matt
2
从技术上讲,在FreeBSD主机上运行FreeBSD镜像是可行的,但这种做法实际上依赖于FreeBSD的Linux ABI兼容性层,有点作弊的意思。 - Matt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接