Docker Captain Take 5 – Nicolas De Loof


Nov 24 2021

Docker Captains are select members of the community that are both experts in their field and are passionate about sharing their Docker knowledge with others. “Docker Captains Take 5” is a regular blog series where we get a closer look at our Captains and ask them the same broad set of questions ranging from what their best Docker tip is to whether they prefer cats or dogs (personally, we like whales and turtles over here). Today, we’re interviewing Nicolas De Loof who has been a Docker Captain since 2015, then has been hired by Docker in 2019 and came back as a Docker Captain one month ago. He is a Software Engineer at Doctolib and is based in Rennes, France.

How/when did you first discover Docker?

10 years ago (oh man!) while I was employed by CloudBees, which was building a Platform as a Service before it became “the Jenkins Company”. DotCloud was one of our competitors, and when they created Docker, I saw obvious matches with our own infrastructure (based on LXC) but also significant differences. Digging into details I learned a lot, and started sharing my knowledge, first as a speaker for conferences, then on Youtube.

What is your favorite Docker command?

docker compose, because I built it as a Docker employee (before leaving and becoming a Docker Captain again). Or

docker rm -f $(docker ps -aq)


Which basically means “cleanup everything”. I like the ability to run a complex stack and throw it away in a single command, then recreate it cleanly. I use this on a daily basis 🙂

What is your top tip for working with Docker that others may not know?

Take a few minutes to understand the distinction between a “bind mount” and a “volume”. Then check in the docs/APIs and see how many times those words are used in a wrong way 😀

What’s the coolest Docker demo you have done/seen ?

I demo-ed docker swarm fail-over by shutting down a raspberry-Pi cluster using an electric drill. Was fun, hopefully no fire alarm. People on the first row in the conference room were a bit surprised.

What have you worked on in the past six months that you’re particularly proud of?

We fully re-implemented the legacy docker-compose python tool into a plain Golang extension to the docker CLI. Doing so, Compose is now a first-class citizen in the Docker ecosystem.

What do you anticipate will be Docker’s biggest announcement this year?

A complete redesign of the image distribution workflow. Today DockerHub is sort of a black box for most of us. We push or pull, but never use the web UI or use specific APIs. With vulnerability scanning, verified publishers program, Docker is opening this to third-party integrations and more traceability on the “supply chain”. I expect a lot more to happen in this area.

What are some personal goals for the next year with respect to the Docker community?

Keep maintaining Docker Compose in my spare time to ensure this keeps being one of the most beloved developer tools.

What talk would you most love to see at DockerCon 2022?

I’d like to hear more about how others do CI in Kubernetes. I personally don’t think Kube is a good match for this, but as the de facto infrastructure standard it’s used everywhere. But then one needs to find a way to run `docker build` inside a Kubernetes pod, and please don’t tell me about “docker in docker”…

Looking to the distant future, what is the technology that you’re most excited about and that you think holds a lot of promise?

I’ve seen many system engineers investing in eBPF. This allows the extension of Linux kernel in a secure way, and opens amazing opportunities for security and extensibility.

Rapid fire questions…

What new skill have you mastered during the pandemic?

Gardening

Cats or Dogs?

Both. And Horses

Salty, sour or sweet?

Sour. Mostly IPA

Beach or mountains?

Any of those. Our always-connected lives deserve some healthy breaks

Your most often used emoji?

¯\_(ツ)_/¯

Because the whole IT stack is built on top of mistakes made by others in the past that we learned how to live with, so we can make our own mistakes. So golang as an illustration.