介绍
借助Watchtower
,只需将新映像推送到 Docker Hub
自己的映像注册表即可更新容器化应用程序的运行版本。Watchtower
将拉取的新映像,正常关闭现有容器,并使用最初部署时使用的相同选项重新启动它。
docker run
$ docker run -d \ --name watchtower \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower
|
docker-compose.yml
version: "3" services: watchtower: image: containrrr/watchtower volumes: - /var/run/docker.sock:/var/run/docker.sock
|
容器选择
完全排除更新
如果需要排除某些容器,请将com. centurylinklabs.watchtower.enable
标签设置为false
。为了清楚起见,应该在您希望忽略的容器上设置此值,而不是在了Watchtower
上设置此值。
示例
dockerfile
LABEL com.centurylinklabs.watchtower.enable="false"
|
docker run
docker run -d --label=com.centurylinklabs.watchtower.enable=false someimage
|
docker-compose
version: "3" services: someimage: container_name: someimage labels: - "com.centurylinklabs.watchtower.enable=false"
|
启用更新
相反,如果您只想包含带有启用
标签的容器,请在启动时传递--label-enable
标志或WATCHTOWER_LABEL_ENABLE
环境变量给瞭望塔,并在要监视的容器上设置com. centurylinklabs.watchtower.enable
标签,其值为。true
示例
dockerfile
LABEL com.centurylinklabs.watchtower.enable="true"
|
docker run
docker run -d --label=com.centurylinklabs.watchtower.enable=true someimage
|
docker-compose
version: "3" services: someimage: container_name: someimage labels: - "com.centurylinklabs.watchtower.enable=true"
|
Watchtower
通过根据每个配置的标准进行测试来过滤正在运行的容器。如果满足所有标准,则对容器进行监控。例如: - 如果容器的名称在监控名称列表中(非空--name
参数)但未启用(centurylinklabs.watchtower.enable=false
),则不会被监控;- 如果容器的名称不在监控名称列表中(非空--name
参数),即使启用(centurnlinklabs.watchtower.enable=true
且--label-enable
设置了flag
),也不会被监控;
仅监控
单个容器可以标记为仅受监视(而不更新)
。
为此,请在该容器上设置com. centurylinklabs.watchtower.monitor-only
标签true
。
LABEL com.centurylinklabs.watchtower.monitor-only="true"
|
或者,可以将其指定为docker run
命令行的一部分:
docker run -d --label=com.centurylinklabs.watchtower.monitor-only=true someimage
|
当在容器上指定标签时,了望塔会将该容器视为与已设置的标签完全相同WATCHTOWER_MONITOR_ONLY
,但效果仅限于单个容器。