Docker 32位Image已下载,但它告诉它一个64位架构

时间:2015-03-09 22:11:06

标签: linux ubuntu docker dockerhub docker-registry

我在这里可能完全错了,但是我从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我错了吗?

3 个答案:

答案 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位模式运行)