Optimizing the Docker image size
Docker images are generated instruction by instruction from the Dockerfile. Though perfectly correct, many images are sub-optimized when we're talking about size. Let's see what we can do about it by building an Apache Docker container on Ubuntu 16.04.
Getting ready
To step through this recipe, you will need a working Docker installation.
How to do it…
Take the following Dockerfile
, which updates the Ubuntu image, installs the apache2
package, and then removes the /var/lib/apt
cache folder. It's perfectly correct, and if you build it, the image size is around 260 MB:
FROM ubuntu:16.04 RUN apt-get update -y RUN apt-get install -y apache2 RUN rm -rf /var/lib/apt ENTRYPOINT ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
Now, each layer is added on top of the previous. So, what's written during the apt-get update
layer is written forever, even if we remove it in the last RUN
.
Let's rewrite this Dockerfile
using a one-liner, to save some space:
FROM ubuntu:16.04 RUN apt...