Note: This originates from: https://forum.synology.com/enu/viewtopic.php?f=258&t=107508&sid=78d911737c5ecea1f9087bdab13612bf&start=15#p478281
Here are steps that I have modified to work for me. This assumes you have a shared folder named "docker" in volume1
.
We need to Symlink /var/run/docker.sock
to /volume1/docker/docker.sock
, because Synology Docker GUI will not be able to run it when it's pointed directly to /var/run/docker.sock
. Also the symlink needs to persist after reboot. To make it do so, you will need to create an automated task in your Synology DSM via "Task Scheduler".
-
Go to "Control Panel" > "Task Scheduler".
-
Click "Create" > "Scheduled Task" > "User-defined Script".
-
On the "Create Task: Window, make sure "User:" is selected as "root" and rename the "Task:" to whatever you like.
-
Click "Schedule" tab. Under "Date - Run on the following days", select "Daily". Under "Time - Frequency", select "Every 1 hour(s)" (just to be on the safe side).
-
Click "Task Settings" tab. Under "Run command - User-defined script", paste the following line into the text box and press "OK".
sudo ln -s /var/run/docker.sock /volume1/docker/docker.sock
The newly created task will be listed there. Click to highlight it and then click "Run" to run it once immediately. Next, we need to download/pull and install the docker container. We can do all this with a single "docker run" command via shell.
-
First, SSH into Synology.
-
Then, run the following docker run command as sudo:
sudo docker run -d --name watchtower -v /volume1/docker/docker.sock:/var/run/docker.sock centurylink/watchtower --interval 82800 --cleanup
You will now be able to run Watchtower via the Synology Docker GUI. You may also set it to restart automatically within the container settings.
Note: You may be able to do step 2 without using the shell (i.e. SSH) by scheduling a task like in Step 1 and deleting it after running it once. Feel free to try out any changes you like.
for those who have docker on another volume:
find /volume? -maxdepth 1 -name docker -exec ln -s /var/run/docker.sock {}/docker.sock \;