Update | Date |
---|---|
New guide released | 31/12/2021 |
What is Watchtower?
Watchtower is an application that watches for updates for all your over containers and automatically updates them for you, this saves you time especially when you have a lot of containers running.
Let’s Begin
Watchtower requires access to the Docker socket, we are unable to set this up via the Synology GUI. This means we will be using Docker-Compose.
Docker Compose
We will be using Docker Compose to set up the container. In a nutshell we will be creating a text file (YAML formatted) which tells Docker exactly how we want to set up a specific container.
The next steps can be done either using a code/text editor such as Notepad++ or to keep things simple for this guide we will be using the Synology Text Editor which can be installed from the Package Center.

Open up Text Editor and click on File then New to start a new file.

You can now copy and paste the details below into the new text file, it is important you don’t change the spacing as YAML has to be formatted correctly in order to be read by Docker Compose.
version: "3.8"
services:
watchtower:
image: containrrr/watchtower:latest
container_name: watchtower
environment:
- TZ=YOURTIMEZONE
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_INCLUDE_STOPPED=true
- WATCHTOWER_REVIVE_STOPPED=false
- WATCHTOWER_SCHEDULE=0 0 2 * * *
volumes:
- /var/run/docker.sock:/var/run/docker.sock
restart: unless-stopped
Environment Variables
We need to make some changes in order for watchtower to know what time it is where you are and what we want it to do. You can amend these based on your preferences.
Variable | Value | What it does |
---|---|---|
TZ | Europe/London | Change this to your own timezone |
WATCHTOWER_CLEANUP | true or false | We want to clean up the old docker images, if you don’t turn this on over the course of a few months you will find that the images start to eat a lot of space and they are not even being used. (true or false) |
WATCHTOWER_INCLUDE_STOPPED | true or false | Do you want to update any stopped containers, the container will stay stopped after being updated (true or false) |
WATCHTOWER_REVIVE_STOPPED | true or false | If a stopped container is updated do you want Watchtower to start it up? (true or false) |
WATCHTOWER_SCHEDULE | 0 0 2 * * * | Rather than setting the number of seconds to wait between checks you can set a schedule. The default I use is to check at 2am everyday, you can work out your own schedule using a cron schedule generator |
Your final file should look similar to the one shown below.

Saving the Compose File
We now need to save this file into our docker share
Click on File then Save As, navigate to the ‘Docker’ share and create a new folder called ‘watchtower’ (lower case)

You need to change the ‘File name’ to watchtower.yml and save it in the ‘watchtower’ folder

SSH and Docker-Compose
It’s time to get logged into you Diskstation via SSH, you can do this in the same way as when you obtained your IDs in the ‘Setting up a restricted Docker user‘ guide.

Once you have logged in you will need to give 2 commands, you can copy and paste these one at a time — you will need to enter your password for the command starting with ‘sudo’
First we are going to change directory to where the watchtower.yml is located, type the below and then press enter.
cd /volume1/docker/watchtower
Then we are going to instruct Docker Compose to read the file we created and complete the set-up the container. Again type the below and press enter.
sudo docker-compose -f watchtower.yml up -d
When the command has completed you should be able to see Watchtower running in the list of containers in the Synology GUI. You can go into the container and within the log you should see that Watchtower is counting down to your next check.

You can now just leave Watchtower running you will never need to manually update your containers again.
Throw me some bits or buy me a coffee?
If you have found my site useful please consider pinging me a tip as it helps cover the cost of running the site, you can even buy me a coffee 🙂
![]() | ![]() | ![]() |
I would delete the Watchtower container and the associated files in /docker/data at this point as its clearly got that old container image in its logs somehow when it doesn’t actually exist anymore.
This will start you fresh and get rid of the error as the system prune deleted everything unused.