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

标签 docker powerpc

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

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

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

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

最佳答案

您可能可以使用几乎未更改的现有构建方法和脚本,但您需要重新构建实际图像。

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

如果您的 Jenkins 设置有足够的镜像名称和版本标签参数,那么您应该能够并行运行 x86 和 Power 设置;您需要在构建的图像名称或标签中的某处对架构进行编码;例如,repo.example.com/app/build:20180904-power . (我不知道如果你控制了所有的机器,其中一个会更好。)如果你有一个私有(private)仓库,你可以在路径的早期对其进行编码,最后使用像 repo.example.com/power/build:20180904 这样的图像名称。 .

您需要仔细检查所有有 Docker 镜像引用的地方是否已正确参数化(无论如何这是一个很好的做法)。这将包括任何直接的docker run命令;任何 Docker Compose 或 Kubernetes YAML 文件或类似工件;和 the FROM line of any Dockerfiles .

关于docker - 我可以在 IBM Power 系统上运行 docker 容器进行 x86 构建吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52163091/

相关文章:

visual-studio - 在 docker 容器中安装 VS2017

java - Docker/var/lib/docker/devicemapper/devicemapper 使用 2.7GB

c - 内联汇编中的 "matching constraint"是什么意思?

python - IBM Power9 ppc64le上的Tensorflow-可以删除libtensorflow.so吗?

linux - 如何使用 QEMU 和 KGDB 调试 Linux 内核?

docker - 如何在 docker 中查看应用程序的日志?

amazon-web-services - 使用 ALB 的最佳实践

process - Dockerfile:RUN导致无操作

c - 在结构定义内的函数指针内使用 void* 作为参数会导致语法错误

使用 gcc 编译 PowerPC 二进制文件并限制可用寄存器