首页 > 解决方案 > 如何安装 32 位 docker 容器

问题描述

我正在尝试使用 Ubuntu 14.04 创建一个 32 位 docker 映像,并且在我运行的任何时候,我都uname看到它x86_64不是i386. 谁能告诉我为什么会这样?

docker run talex5/lucid32 uname -m

奇怪的是,当我以不同的方式查找架构类型时,它显示为 32 位:

docker run i386/ubuntu:14.04 file /sbin/init

/sbin/init:ELF 32 位 LSB 共享对象,Intel 80386,版本 1 (SYSV),动态链接(使用共享库),适用于 GNU/Linux 2.6.24,BuildID[sha1]=c394677bccc720a3bb4f4c42a48e008ff33e39b1,已剥离`

当我下载说它们是 32 位的不同 docker 镜像时,甚至当我使用 debootstrap 创建自己的 docker 镜像时,这种情况总是会发生。

谢谢!

标签: docker

解决方案


uname报告内核的版本和操作系统详细信息,但 Docker 容器始终使用主机系统的内核,如果是 64 位内核,它将报告x86_64.

您应该看到使用混合的 32 位/64 位操作系统安装运行此相同的结果(在 Ubuntu 土地上安装包,如libc6:i686);在 chroot 中使用 32 位文件系统树;在 Docker 容器中;这与在具有 64 位内核的系统上运行 32 位二进制文​​件的情况相同。


推荐阅读