我在这里可能完全错了,但是我从docker注册表中提取32bit/ubuntu并且我运行uname -a
我得x86_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:/#
我理解这台机器是64bit
我错了吗?
答案 0 :(得分:5)
Docker容器始终使用主机中的内核。你有64位主机,这就是它的报告内容。
容器映像是32位的,因为所有二进制文件都是32位,可以由32位架构处理。
Docker不进行虚拟化。
答案 1 :(得分:0)
摘自https://github.com/docker/docker/issues/611
uname总是告诉你64位。看看例如“file / bin / sh”查看文件系统的真实拱门。
答案 2 :(得分:0)
请注意:systemd-nspawn可以“虚拟化”处理器模式,并欺骗内部进程以相信它是一个32位处理器(由我测试)。 AFAIK,LXC也可以。
我的意思是运行“uname -m”返回“i686”(我的主机操作系统以64位模式运行)