I have been doing a bit of work on analysing the Docker official library images using the bashbrew tool. If you are an experienced Go developer then perhaps it’s obvious how to get it working but I had some trouble. Here is a quick introduction to getting the bashbrew tool working.
There’s literally not much to say about the scratch container as it’s completely empty! This container is usually only used when creating a base container from an external root filesystem in combination with the ADD command. A Dockerfile that does this would look like: FROM scratch ADD rootfs.tar / The root filesystem can be created outside… Continue reading Container of the Week – scratch
This week we are going to look at a fairly popular container that is often used as a base for larger images – busybox. We’re also going to look at some of the upsides and downsides of busybox, a somewhat tempestuous project in the free software world.
I’m having a cleanup of my Docker images and there’s a bit of a mismatch between the output format of docker images and the input of docker rmi. I don’t however want to delete everything, only a selection of images. Luckily there’s a –format argument to docker images which allows an output format to be… Continue reading Mass-Deleting Docker Images
There is a rather unhealthy obsession, in my opinion, in the Docker community about developing the smallest possible container size. Obviously you don’t want your container to contain hundreds of megabytes of useless junk, but perhaps we have passed the point of diminishing returns. It turns out that it is less expensive to have files… Continue reading Do Docker Users Have a Container Size Fetish?
This post is part of a series where we examine a different container image each week. See previous Containers of the Week here. This week’s image is the official image for the Jenkins project, an open source application for building, deploying and automating software. Running Jenkins inside a container is a simple task, but I’m going to… Continue reading Container of the Week – jenkins
In his book, Antifragile, Nassim Nicholas Taleb describes and develops the concept of antifragility – the property of a system to increase in robustness in response to faults or failures. In the computing world, errors often propagate a long way from their source. A simple memory allocation failure dozens of levels deep inside an application can bubble up and… Continue reading Antifragility and max_fail_percentage in Ansible
Welcome to another episode of Container of the Week! This time we are going to look at a utility container that assists you in debugging container operation or just helping to understand what’s going on. Sometimes testing out a new container or troubleshooting is a simple matter of using “docker logs“. Unfortunately some containers do not log… Continue reading Container of the Week – factorish/syslog
If you are like me then you have probably written the following code a lot as the first command in your Dockerfile: RUN apt-get update && apt-get install git wget or maybe you need to build a C program to run in your container and use something like this: RUN apt-get update && \ apt-get install autoconf… Continue reading Container of the Week – buildpack-deps
If you were lucky enough to go to DockerCon 2017 (I wasn’t) you might have seen the announcement of Moby and LinuxKit, Docker’s new framework for assembling specialised container systems. Traditionally a bare metal or virtual machine that runs Docker has run a “full service” distribution like Debian, Ubuntu or RedHat Linux. Docker and containerized applications are then installed and run on… Continue reading LinuxKit – the software-defined OS