docker compose 配置自动更新
docker compose 配置文件可以很方便的配置和运行 docker 容器,手动更新容器的方法是在 yml 目录下运行以下命令:
docker compose pull && docker compose up -d
可以通过在 compose 文件中设置 watchtower 来定期自动拉取最新镜像并启动容器,同时可以配置删除旧镜像和容器。
在 docker-compose.yml 文件中增加以下内容:
version: '3'
services:
...
watchtower:
image: containrrr/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --interval 3600 --cleanup --remove-volumes
environment:
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_REMOVE_VOLUMES=true
以下是主要的配置说明:
- 将
--interval
参数设置为 3600。这意味着 Watchtower 将每 3600 秒(即每小时)检查一次更新。 --cleanup
和WATCHTOWER_CLEANUP=true
确保在更新后清理旧的镜像。--remove-volumes
和WATCHTOWER_REMOVE_VOLUMES=true
确保删除与旧容器关联的匿名卷。
使用这个配置,Watchtower 将:
- 每小时检查一次你的容器是否有更新
- 如果发现更新,它会停止旧容器,启动新容器
- 删除旧的容器和相关的匿名卷
- 删除旧的镜像
这个配置应该能满足大多数用例的需求,既能保持你的容器相对最新,又不会过于频繁地进行检查和更新操作。
需要注意的是:
- Watchtower 只会删除它更新的容器的旧版本。它不会删除系统中的其他未使用的容器或镜像。
- 它只删除匿名卷,不会删除命名卷。
- 如果你想删除所有未使用的镜像(不仅仅是 Watchtower 更新的),你可能需要定期运行
docker image prune
命令。
标签:无