根据自己的系统架构选择,都是为最新版镜像
docker pull containrrr/watchtower:i386-latest
docker pull containrrr/watchtower:amd64-latest
docker pull containrrr/watchtower:armhf-latest
docker pull containrrr/watchtower:arm64v8-latest
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower:arm64v8-latest # 更改为你pull的镜像
更新容器只需要在最后写上容器名就可以,比如这里更新了nginx和mysql
docker run -d \
--name watchtower \
--restart unless-stopped \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower -c \
nginx mysql
-c:其实是 --cleanup的缩写,即更新时自动清理掉旧镜像,避免占用大量的磁盘空间。
如果每次更新都要输入更新的容器名会比较麻烦,可以将容器名写入一个文件。创建.watchtower.list
文件,再写入容器名,每行隔开。如参考以下
$ cat ~/.watchtower.list
nginx
mysql
redis
再使用以下指令就可以更新文件内的容器
docker run -d \
--name watchtower \
--restart unless-stopped \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower -c \
$(cat ~/.watchtower.list)