【问题标题】:Docker 32-bit Image downloaded, but tells its a 64-bit architecture已下载 Docker 32 位映像,但告诉其为 64 位架构
【发布时间】:2015-05-11 05:46:28
【问题描述】:

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

【问题讨论】:

    标签: linux ubuntu docker dockerhub docker-registry


    【解决方案1】:

    Docker 容器始终使用主机的内核。你有一个 64 位主机,所以这就是它的报告。

    容器映像是 32 位的,因为所有二进制文件都是 32 位的,并且可以由 32 位架构处理。

    Docker 不做虚拟化。

    【讨论】:

    • 要检查容器二进制文件的架构,您可以使用命令file 检查它们。即:file /bin/bash
    【解决方案2】:

    https://github.com/docker/docker/issues/611中提取

    uname 总是会告诉你 64 位。看看例如"file /bin/sh" 查看文件系统的真实拱门。

    【讨论】:

      【解决方案3】:

      请注意:systemd-nspawn 可以“虚拟化”处理器模式,并欺骗内部进程相信它是 32 位处理器(经我测试)。 AFAIK,LXC 也可以。

      我的意思是运行“uname -m”返回“i686”(我的主机操作系统运行在 64 位模式下)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-06-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-19
        • 2011-12-18
        • 1970-01-01
        相关资源
        最近更新 更多