Can't get ubuntu 8.04 or 10.04 to run in docker

Hi! I have an old program I’m trying to run under Docker. I’m running Win 11 Pro and using Docker Engine v20.10.17. I’m running this in WSL 2 with Ubuntu 22.04.

I’ve found several Lucid, ubuntu 10.04 repos, but when I try to run them they all exit immediately with code 139.

chrismacp/ubuntu-10.04

ubuntu-10.04-legacy-docker

icomputer7/ancient-ubuntu-docker

I tried ancient-ubuntu-docker with both lucid and hardy.
docker run -it icomputer7/ancient-ubuntu-docker:lucid /bin/bash
docker run -it icomputer7/ancient-ubuntu-docker:hardy /bin/bash

Any ideas? Does anyone run any old ubuntus? Can anyone else pull and run any of these? I’m able to run many other docker containers. I don’t know if it’s me or my system.

Thanks in advance for any help!

Ray

Hi

I havnt looked into WHY bash core dumps, but you can get into with /bin/sh

root@jumphost:~# docker run -it icomputer7/ancient-ubuntu-docker:lucid /bin/sh
# bash
Segmentation fault (core dumped)
#

Thank you VERY much for responding!

I tried it and now everything get segmentation fault.

# apt-get update
E: Method http has died unexpectedly!
E: Sub-process http received a segmentation fault.

I googled it but I can’t find anything that helps.

Btw, trying to run the same command with hardy just returns immediately with 139.

Any idea about the segmentation fault?

I can’t test now on an other machine, but it works perfectly without any error on my macOS with the ARM processor emulated by qemu in Docker Desktop.

The virtual machine under Docker Desktop runs LinuxKit which (if I am not mistaken) based on Alpine Linux. At least it uses the APK package manager.

Alpine and Debian based distributions have different libraries. I don’t know how much the kernel of LinuxKit is different, but the Ubuntu distributions you are trying to run in containers have very old libraries and might not compatible with the kernel or other parts of the host. I am not 100% sure what matters here.

However, I am 100% sure that when someone says running something in a container means it will run on every host the same way, it is not true. Very old systems can be hard to run on new hosts. Using just a little older system is usually not a problem.

I think there is an Alpine distribution for WSL. You can try to run Docker on that, but Alpine hosts are not mention in the official documentation. You can find some information in the Alpine wiki:

https://wiki.alpinelinux.org/wiki/Docker

and you can check how the Alpine based Docker in Docker image is created

If none of these solutions work, you can try to install Docker Desktop until you can update your software to be compatible with a more recent distribution.

If you don’t want to install Docker Desktop, you can try to install qemu in the WSL distribution. Maybe It worked for me because of qemu and not because of LinuxKit. I think I had a similar error when I wanted to emulate a container. I don’t remember exactly, but maybe it is the other way around. The problem is I don’t know how you could use the emulator when your architecture is the same as the architecture of the container.

Here is how you can install qemu for Docker on Ubuntu:

https://www.stereolabs.com/docs/docker/building-arm-container-on-x86/

sudo apt-get install qemu binfmt-support qemu-user-static

binfmt is what Docker needs.

IF nothing works, then the solution may be to run the old distributions in a virtual machine.

1 Like