debootstrap не может создать старый образ i386 для Ubuntu для докера
Я пытаюсь создать образ докера с помощью debootstrap. Я хотел бы создать образ Ubuntu 8.04 i386. Когда я бегу
sudo debootstrap --verbose --arch=i386 Харди Харди http://old-releases.ubuntu.com/ubuntu/
затем
Судо Тар -C Харди -C. | импорт sudo docker - выносливый
Это создает изображение, но когда я проверяю арку внутри контейнера с
uname -m
это дает мне x86_64, а не i386, как я просил раньше.
Любое предложение будет с благодарностью. Спасибо
РЕШЕНИЕ
Один из способов обойти эту проблему (см. Ответ) - добавить ENTRYPOINT ["linux32"] в Dockerfile.
2 ответа
Потому что архитектура исходит от ядра, которое исходит от хоста, а не от контейнера. Например, вот вывод 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
Я копирую ответ 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.