Using Ouroboros to painlessly dominate Docker Container updates

NOTE:
Ouroboros is no longer maintained. Watchtower is an amazing alternative to Ouroboros and works the same way. Visit: Using Watchtower to automate Docker container updates.

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

Be the first to comment

Leave a Reply

Your email address will not be published.


*