Linux Docker下载了32位图像,但告诉它是64位体系结构
我在这里可能完全错了,但是,我从docker注册表中提取,然后运行Linux Docker下载了32位图像,但告诉它是64位体系结构,linux,ubuntu,docker,dockerhub,docker-registry,Linux,Ubuntu,Docker,Dockerhub,Docker Registry,我在这里可能完全错了,但是,我从docker注册表中提取,然后运行uname-a我得到x86\u 64 ➜ ~ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE erlang-build-box latest fd61e832201b 7 weeks ago
uname-a
我得到x86\u 64
➜ ~ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
erlang-build-box latest fd61e832201b 7 weeks ago 1.841 GB
hello-world latest e45a5af57b00 9 weeks ago 910 B
32bit/ubuntu 14.04 6de534a1b6e3 4 months ago 290.7 MB
phusion/passenger-full 0.9.10 29eb0419ab6f 10 months ago 649.3 MB
➜ ~ docker run -t -i 6de534a1b6e3 /bin/bash
root@c40d7c09be96:/# uname -a
Linux c40d7c09be96 3.16.7-tinycore64 #1 SMP Tue Dec 16 23:03:39 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
root@c40d7c09be96:/# uname -m
x86_64
root@c40d7c09be96:/#
我的理解是错误的,这台机器是64位的吗?Docker容器总是使用来自主机的内核。你有一个64位的主机,这就是它报告的内容 容器映像是32位的,因为所有二进制文件都是32位的,可以由32位体系结构处理 Docker不进行虚拟化。从
uname将始终告诉您64位。查看例如“file/bin/sh”以了解文件系统的真正架构。只需注意:systemd nspawn可以“虚拟化”处理器模式,并欺骗内部的进程,使其相信它是一个32位处理器(由我测试)。好的,LXC也可以
我的意思是运行“uname-m”返回“i686”(我的主机操作系统运行在64位模式下)要检查容器二进制文件的体系结构,可以使用命令
文件
检查它们。例如:file/bin/bash