Alpine, Slim, Stretch, Buster, Jessie, Bullseye — What are the Differences in Docker Images?
And which one should I choose?
Update: I wrote this article in 2020 and have a learned a lot about Docker Images since then. Read my new article for the most up-to-date information.
Alpine, Slim, Bookworm, Bullseye, Buster, Stretch, Jessie — Which Docker Image Should I Choose?
Concrete steps for choosing a docker image.
If you are like me, the first time you went to create a Dockerfile and had to choose an image from the DockerHub page, you were thoroughly confused. Sometimes choices like this can freeze us up from acting, so maybe we just go with the standard image and avoid looking into it further, so that we can move forward with our project.
But it’s a good idea to understand the differences between the types of Docker images so that you choose the right one for your application or script.
In short, the difference between docker images is the underlying operating system. Here is a summary of each.
And be aware that this decision is not permanent. You can always change the image in your Dockerfile and rebuild your images. Just be sure to test thoroughly before deploying to production.
Full official image
I’ll use python and node as examples because these are my most used docker images, but this applies to any image. According to DockerHub, this is the de-facto image and the one you should use if you are unsure.
These images are based on the most recent stable Debian operating system release. I usually start with one of these when trying to get a project up and running quickly, and I am not yet concerned about the size of the resulting image.
The full image is the safest choice.
Images tagged with stretch, buster, or jessie are codenames for different Debian releases. At the time of this writing, the stable Debian release is 10.4, and its codename is “Buster.”…