@unmonoqueteclea about | projects | archive | |

18 Feb 2023

Learning about Docker Contexts

A single Docker CLI to rule them all! Let me show you a little example of how I manage different Docker nodes.

My audio search engine, voilib.com, is running on a remote machine, configured in my .ssh/config file with the name voilib. I used to do ssh voilib to open a new SSH session to execute commands such as docker stats or docker logs. But then I discovered Docker Contexts.

I created a new context just by doing:

docker context create voilib --docker "host=ssh://voilib"

Now, every time I need to run any Docker command in the voilib machine I just do:

docker context use voilib.

From that moment, all the Docker commands such as docker exec, docker logs or docker stats will be running inside the remote server! When I want to return to my local environment I do:

docker context use default

I even opened a new PR in docker.el so that I can check available contexts and change the active one from Emacs. How I wish I had discovered it before!

Tags: Docker