Managing my docker services


At first I run with Portainer, but did not like the way it worked. The user interface and user experience annoyed me by having to clicking back and forth to perform different actions.

Now I tend to manage and organize my docker services with Docker Compose in a folder structure. Each service has its own directory with an data or configuration sub-directory. If possible every service is named after the domain name, the service is available at.

/path/to/docker/services/
/path/to/docker/services/goatpr0n.farm
/path/to/docker/services/git.goatpr0n.de
/path/to/docker/services/other-service
/path/to/docker/services/important-other-service

When I wanted to perform an action to one or multiple services, I had to change into the service directory, and run the docker-compose command. This became also very annoying after a while with all the directory changing.

My solution was to write a tool to basically give me the possibility to mange my services without switching into their directory from any point from within my filesystem structure. So I created Doxy.

The solution itself is pretty simple. A configuration file tells where the services are located (e.g. /path/to/docker/services) and the location of the docker-compose command. When running doxy to control a service the command is simply passed to docker-compose.

$ doxy control other-service up -d

The comfort with this solution is also, you can enable tab completion for the services!