如何在Docker上运行*BSD OS?

KiY*_*ter 7 bsd docker

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

我正在使用Docker for Mac.
但是Docker Hub上没有BSD映像.
我该怎么办呢?

and*_*808 11

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

现在,从理论上讲,如果有人在Linux内核上运行BSD用户空间,则可能有一个接近BSD的Docker容器.然而,一些研究表明,没有这样做的项目取得了成功.

所有这一切都意味着没有办法将真正的BSD作为Docker镜像运行,这就是为什么Docker没有BSD镜像的原因.

  • 要添加到这个答案,如果你需要类似的东西(在单个内核下运行的单独的用户空间)为FreeBSD,它有[Jails](https://www.freebsd.org/doc/handbook/jails.html). (6认同)
  • Docker正在从Linux特定功能中抽象出来,依赖于[OCI运行时规范](https://github.com/opencontainers/runtime-spec).Windows现在有一个OCI实现,Docker可以在其上运行Windows容器.OCI主要基于Linux内置的容器功能. (3认同)
  • 此外,在[FreeBSD主机](https://wiki.freebsd.org/Docker)上运行[FreeBSD image](https://hub.docker.com/r/lexaguskov/freebsd/)技术上是可行的首先依靠FreeBSD的Linux ABI兼容层来欺骗. (2认同)