docker - 如何安装 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 镜像时,这种情况总是会发生。
谢谢!
解决方案
uname
报告内核的版本和操作系统详细信息,但 Docker 容器始终使用主机系统的内核,如果是 64 位内核,它将报告x86_64
.
您应该看到使用混合的 32 位/64 位操作系统安装运行此相同的结果(在 Ubuntu 土地上安装包,如libc6:i686
);在 chroot 中使用 32 位文件系统树;在 Docker 容器中;这与在具有 64 位内核的系统上运行 32 位二进制文件的情况相同。
推荐阅读
- python - 代码没有返回我最新的文件
- reactjs - 使用 Hooks 删除表格行
- kubernetes - 通过 Istio 虚拟服务路由到外部站点
- c# - 如何在给出文本框输入之前停止 Windows 窗体程序的执行?
- ios - Google Analytics - Universal Analytics 和 Google Analytics (Firebase) 有什么区别
- r - 如何将矩阵RGB转换为R中的图像
- python - 有什么方法可以将 python 变量传递给 R 代码?
- mysql - 在同一 SQL 语句中使用 IF 和 SET
- excel - 基于标准VBA删除表行
- json - CURL 脚本到 powershell