当前位置: 首页 > 工具软件 > watchtower > 使用案例 >

[watchtower] 自动更新 Docker 镜像与容器

贺劲
2023-12-01

pull镜像

根据自己的系统架构选择,都是为最新版镜像

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的镜像

更新docker镜像

更新容器只需要在最后写上容器名就可以,比如这里更新了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)

github地址

 类似资料: