Use the Docker CLI to pull this image
Automatically update your running Docker containers to the latest available image.
A python-based alternative to watchtower
Ouroboros will monitor (all or specified) running docker containers and update them to the (latest or tagged) available image in the remote registry. The updated container uses the same tag and parameters that were used when the container was first created such as volume/bind mounts, docker network connections, environment variables, restart policies, entrypoints, commands, etc.
ssh -i key server.domainname "docker pull ... && docker run ..."
is for scrubsdocker-compose pull && docker-compose up -d
is for fancier scrubsMore detailed usage and configuration can be found on the wiki.
Ouroboros is deployed via docker image like so:
docker run -d --name ouroboros \
-v /var/run/docker.sock:/var/run/docker.sock \
pyouroboros/ouroboros
This is image is compatible for amd64, arm32, and arm64 CPU architectures
or via docker-compose
:
Ouroboros can also be installed via pip
:
pip install ouroboros-cli
And can then be invoked using the ouroboros
command:
$ ouroboros --interval 300 --loglevel debug
This can be useful if you would like to create a
systemd
service or similar daemon that doesn't run in a container
Instead of updating to your original image tag you can specify if you would like Ouroboros to update all containers to latest
.
e.g. If your container was started with nginx:1.14-alpine
using LATEST=true
will poll the docker registry and compare digests. If there is a new image for nginx:latest
, ouroboros will update your container using the newly patched version.
Default is
false
docker run -d --name ouroboros \
-v /var/run/docker.sock:/var/run/docker.sock \
-e LATEST=true \
pyouroboros/ouroboros
Ouroboros can monitor things other than just local, pass the --docker-sockets
argument to update a system with the Docker API exposed or alternatively pass the DOCKER_SOCKETS
environment variable.
Default is unix://var/run/docker.sock
docker run -d --name ouroboros \
-v /var/run/docker.sock:/var/run/docker.sock \
-e DOCKER_SOCKETS=tcp://my-remote-docker-server:2376 \
pyouroboros/ouroboros
Many more examples are located in our wiki on the usage page
All welcome