-1

我正在尝试使用 debootstrap 创建一个 docker 映像。我想创建一个 ubuntu 8.04 i386 映像。当我跑

sudo debootstrap --verbose --arch=i386 hardy hardy http://old-releases.ubuntu.com/ubuntu/

然后

须藤焦油 -C 哈迪 -c 。| sudo docker import - 哈迪

它会创建图像,但是当我检查容器内的拱门时

unname -m

它给了我 x86_64 而不是我之前要求的 i386。

任何建议将不胜感激。谢谢


解决方案

解决此问题的一种方法(参见答案)是将 ENTRYPOINT ["linux32"] 添加到 Dockerfile

4

2 回答 2

0

我从 jpetazzo 复制答案

https://github.com/docker/docker/issues/611

uname will always tell you 64 bits. Look at e.g. "file /bin/sh" to see the real arch of the filesystem.

于 2015-12-20T23:01:34.383 回答
0

因为架构来自内核,内核来自主机,而不是容器。例如,这是两个非常不同的分布的 uname 输出:

$ docker run alpine uname -a
Linux 5ef5dac8a8ac 4.1.13-boot2docker #1 SMP Fri Nov 20 19:05:50 UTC 2015 x86_64 Linux
$ docker run debian uname -a
Linux c47f04c71efb 4.1.13-boot2docker #1 SMP Fri Nov 20 19:05:50 UTC 2015 x86_64 GNU/Linux

它们都假设主机的内核和体系结构。比我更好的答案:https ://superuser.com/a/889474/73766

于 2015-12-20T22:46:32.837 回答