Note that 4.9 was never released as ISOs, so you have to yum update from 4.8 to get there. Consume the readme for 4.9 to grok this better.
I started with the 4.8 ISO by torrenting:
http://mirror.symnds.com/distributions/CentOS-vault/4.8/isos/i386/CentOS-4.8-i386-binDVD.torrent and then carefully comparing the sha1 and md5.
Then I installed 4.8 manually into an empty virtual box instance (unselecting everything), which I then unmounted after installation and before the first boot and mounted the created disk elsewhere to create the tarball (so I don't tar up /dev and /proc and .pid files from a running instance).
Then, my Dockerfile edits the yum repo using 2k0ri's recipe and then runs a
Finally, because that's not very compact (since
yum update touches nearly every file in the system, doubling the size of the container and basically wasting the benefit of being based on 4.8 in terms of space), I did a
docker export followed by a
docker import to get the resulting container pushed here.
The reason for all this is that I needed a compact Centos 4.9 base image with a 32-bit userland to rescue some old software that I have which must live on this particular distribution of Centos and is unhappy otherwise. Note that because docker, I still have a 64-bit kernel, but everything else inside this container is 32-bit, and shockingly, my antique application stack works just fine, thankyouverymuch.
The ability do to this kind of crazy mashup is, for me, a key value of Docker Containers - I don't care that Centos 4.9 is old, unsupported, and grotty - I can provide all the pieces for my old app to run, and have them isolated from the modern substrate.
While both fatherlinux/centos4-base and the derivative 2k0ri/centos4-64-vault are similar to this one, each of those have a 64-bit userland, which does not help me at all. They are also slightly larger, no doubt bloated from those long 64bit pointers. :)
Also, this image has
curl installed, and has version 1.7 of gosu installed as well.
If you use this container, you may want to look carefully at 2k0ri's recipe for updating bash to avoid the shellshocked bug. Or be very very careful that you never run
bash in your container.