Docker would seem ideal for running 64-bit programs when otherwise constrained to a 32-bit environment, such as Raspbian. However, with an aarch64 kernel but 32-bit userland (including 32-bit Docker binaries), here’s what happens when I try:
pi@raspberrypi:~ $ docker run -it arm64v8/debian pi@raspberrypi:~ $ echo $? 159
The docker command just fails without printing anything and returns exit code 159, while it works fine if I run a 32-bit container. By comparison, if I try the opposite scenario and run
arm32v7/debian from 64-bit Docker on a 64-bit Raspberry Pi OS, that works.
Furthermore, if I go back to Raspbian32 with the 64-bit kernel and try a similar exercise with LXC or chroot instead of Docker, they can run 64-bit programs just fine. Any fundamental reason that Docker can’t achieve the same?
- Issue type: bug/feature request?
- OS Version/build: Raspbian GNU/Linux 9.3 (stretch), kernel: Linux raspberrypi 4.14.34-v8+ #1 SMP PREEMPT Tue Apr 17 02:45:42 PDT 2018 aarch64 GNU/Linux
- App version: Docker version 18.09.0, build 4d60db4
- Steps to reproduce: Install Crazyhead90’s Raspbian w/ 64-bit kernel image, then:
curl -fsSL https://get.docker.com -o get-docker.sh sed -i.bak 's/$(uname -m)/armv7l/' get-docker.sh chmod +x get-docker.sh ./get-docker.sh sudo usermod -aG docker $USER #then reboot if necessary docker run -it arm64v8/debian