我可以运行在IBM Power系统上进行x86构建的docker容器吗?

时间:2018-09-04 09:27:24

标签: docker powerpc

我们的构建设置被备份到一个大型docker容器中(基本上是一个2 GB映像,它本身带有一个完整的X86 linux)。

我们有两种实际构建方法:官方方法是jenkins环境(在X86硬件上运行)。但是我们还有一个运行RH 7的“ X86服务器”。开发人员可以登录到该RH服务器并自己启动特定的构建(使用所述的docker镜像)。

这些RH服务器将在某个时候关闭,将由IBM Power8机器(运行RH7 Little Endian供电)替换。

我只是想知道:我们现有的构建设置和docker镜像是否有可能仅在Power8上运行?还是根本的技术问题使它不太可能甚至不值得尝试?

2 个答案:

答案 0 :(得分:3)

您可能可以使用现有的构建方法,并且脚本几乎保持不变,但是您需要重建实际的映像。

您不能在Power上直接运行x86二进制文件(在非常低的级别,机器代码的字节只是不同的)。 Docker不包含任何类型的虚拟化层。它进行了大量设置以将容器与主机隔离,然后直接在映像中运行二进制文件。

如果您的Jenkins设置具有足够的参数用于图像名称和版本标签,那么您应该能够并行运行x86和Power设置;您需要在构建的图像名称或标签中的某处对体系结构进行编码;例如repo.example.com/app/build:20180904-power。 (我不知道如果您控制所有机器,则认为另一种更好。)如果您有私有仓库,则可以在路径中更早地对其进行编码,并以repo.example.com/power/build:20180904之类的图像名称结束

您需要仔细检查所有具有Docker映像引用的地方都正确地对其进行了参数设置(无论如何,这都是一个好习惯)。这将包括任何直接的docker run命令;任何Docker Compose或Kubernetes YAML文件或类似工件;和the FROM line of any Dockerfiles

答案 1 :(得分:1)

现有的构建设置?不确定!
Docker映像?不,甚至不要尝试。

Docker映像实际上是多层,它们通过相应的存储驱动程序和后备文件系统(显示在docker info的输出中)存储在文件系统上。

如果存储驱动程序/备份文件系统已更改(在更改操作系统时可能是正确的),则旧的Docker映像将不再有效。意味着必须确定要重建它们。