I use Docker to run many applications on my network. Typically, in order to update an application, you have to shut down the Docker container, pull the latest image, and redeploy. If you have one or two Docker containers it shouldn’t be that much of an issue, right? But what if you have 50 Docker containers?
That’s where Ouroboros comes in. Ouroboros is an application that is housed inside a Docker Container. The application scans the Docker registry for updates to all of your running containers. If an update to a Docker image is detected, Ouroboros will stop the instance on your server, and redeploy it using the same parameters with the updated image that it pulls from the repository. This is useful if you started your containers using the
Docker Run command instead of using Docker Compose.
I like Ouroboros because of its various configuration options and because it is truly a “set it & forget it” solution for updating containers. Ouroboros has a plethora of environmental variables that you can set to modify how it operates.
For example, I use the
INTERVAL variable to make sure only check for updates once every hour. Next, I use the
LABELS_ONLY variable so that the application only updates containers that have the
com.ouroboros.enable set to
TRUE. This is useful for those high-maintenance containers that tend to require additional care upon updating, like for example a database migration. Finally, I use the
NOTIFIERS variable to send notifications to my phone via Pushover.
Ouroboros is very powerful, it can also be configured to scan and update Docker containers on remote hosts. I’m happy with it so far and recommend it to anyone who has loads of Docker containers to manage.
You can get started using Ouroboros by using the following docker run command:
docker run -d \ --name ouroboros \ -v /var/run/docker.sock:/var/run/docker.sock \ pyouroboros/ouroboros