linux - 在不同的主机操作系统上构建 Docker 镜像

标签 linux ubuntu docker centos

对于以下作业,下划线 Linux 发行版和/或版本是否不同:

构建 docker 镜像(例如,在 Ubuntu 主机中构建 CentOS docker 镜像,或在 CentOS 7.1 主机中构建 CentOS 6.6 docker 镜像) 运行 docker 容器(例如,在 Fedora 主机中运行 CentOS docker 容器,或在 CentOS 7.1 主机中运行 CentOS 6.6 docker 容器)

同样的问题也适用于 Docker 引擎版本,例如,我可以在安装了 Docker 1.9 的主机上构建 docker 镜像,但在安装了 Docker 1.12 的主机上运行它吗?

还有更深层次的不同版本的 Linux 内核,例如,在内核 3 下构建但在内核 4 下运行?

我想我明白 Docker 真的只是类固醇的 chroot 环境,所以在容器构建和运行时强调操作系统真的不重要,但我看到人们遇到了不兼容的操作系统/版本的问题,任何人都可以提供一些见解关于这个问题?

最佳答案

在另一个发行版上构建一个发行版不是问题(例如在 Ubuntu 系统上构建 CentOS 容器等)

关于 Docker 版本,在某些情况下,您可能无法使用较旧的 Docker 引擎运行使用较新的 Docker 构建的容器。如果您构建一个镜像,然后在较新的 Docker 引擎上运行它,这应该不是问题。这是因为较新的 Docker 引擎可能会构建具有旧引擎无法理解的功能的图像。但从另一个角度来看,这应该不是问题。

内核版本应该不是什么大问题,但这取决于您使用的软件。如果该软件希望在内核 4 上运行,而您在内核 3 上运行它,那么它可能无法运行。但是,只有当旧内核版本中不存在所需的内核功能时,这才会成为问题。这并不是那么普遍,至少对于典型的软件而言是这样。但这肯定会发生。

恐怕这个建议很笼统,因为这是一个一般性问题,与特定软件版本或软件包无关。

关于linux - 在不同的主机操作系统上构建 Docker 镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41773755/

相关文章:

linux - 如何将文件附加到 Jenkins 的电子邮件中?

linux - Eclipse 不使用 .bashrc 中设置的路径

dns - 在链接的Docker容器中解析内部DNS

java - 使用 docker-compose 时 Healthcheck 根本不起作用(我的服务在启动前不等待 Kafka 启动)

c - 使用消息操作的二进制信号量

linux - 无法在 RHEL 中启动 cscope

linux - 从 Windows 转向 *nix 编程平台

ubuntu - 如何使用命令行从 FTPS 服务器递归获取文件?

ubuntu - 开始 jetty8 ClassNotFoundException : HttpServletResponse

docker - 从Docker容器访问主机