当前位置: 首页 > wzjs >正文

去哪里可以做网站常用的网络营销策略有哪些

去哪里可以做网站,常用的网络营销策略有哪些,手机app下载客户端,广州建设工程网站文章目录 前言一、验证 Watchtower 是否正在运行1. 检查 Watchtower 容器状态2. 查看 Watchtower 日志 二、检查5分钟间隔设置是否正确1. 确认启动命令2. 验证环境变量 三、排查更新未生效的原因1. 检查是否有镜像更新2. 检查容器标签3. 检查监控范围 四、测试 Watchtower 功能…

文章目录

  • 前言
  • 一、验证 Watchtower 是否正在运行
    • 1. 检查 Watchtower 容器状态
    • 2. 查看 Watchtower 日志
  • 二、检查5分钟间隔设置是否正确
    • 1. 确认启动命令
    • 2. 验证环境变量
  • 三、排查更新未生效的原因
    • 1. 检查是否有镜像更新
    • 2. 检查容器标签
    • 3. 检查监控范围
  • 四、测试 Watchtower 功能
    • 1. 手动触发检查🎯
    • 2. 创建测试容器
  • 五、常见问题解决方案
    • 1. 时间间隔不生效
    • 2. Watchtower 完全不工作
  • 六、推荐的生产环境监控方案
  • 七、分析日志
    • 1. 阿里云私有仓库认证失败(主要问题)
    • 2. 解决方案
    • 3. 问题解决


前言

写这篇文章主要记录一次实际生产环境遇到的问题。起因是公司有两个镜像库,一个是无需认证的公共镜像库,一个是需要账号密码认证的私有镜像库。都通过docker + watchtower 实现自动容器更新,但是私有库死活不生效。下面记录了排查过程。我这里是用了 5分钟 的定时检查。

虽然下文有很多方法都不是解决本次事故的原因,但是如果你不是站在 上帝视角你又怎么能知道到底是因为什么原因引起的呢?所以我把排查方法都罗列出来了。


一、验证 Watchtower 是否正在运行

1. 检查 Watchtower 容器状态

docker ps -f name=watchtower

正常应该看到类似输出:

CONTAINER ID   IMAGE                       COMMAND        CREATED       STATUS       PORTS     NAMES
a1b2c3d4e5f6   containrrr/watchtower:latest   "/watchtower"   2 days ago    Up 2 days             watchtower

如果 STATUS 不是 "Up" ,说明容器没有正常运行。

2. 查看 Watchtower 日志

docker logs watchtower

正常运行的 Watchtower 会有类似这样的周期性日志:

time="2023-05-01T12:00:00Z" level=info msg="Checking for new images"
time="2023-05-01T12:00:01Z" level=info msg="No new images found for nginx"

二、检查5分钟间隔设置是否正确

1. 确认启动命令

你的启动命令应该包含类似这样的环境变量设置:

docker run -d \--name watchtower \-v /var/run/docker.sock:/var/run/docker.sock \-e WATCHTOWER_POLL_INTERVAL=300 \  # 300秒=5分钟containrrr/watchtower

常见错误:

  • 拼写错误:WATCHTOWER(错误) vs WATCHTOWER(正确)
  • 值不是秒数:应该直接写300(秒),而不是"5m"或"5 minutes"

2. 验证环境变量

docker inspect watchtower | grep -i poll_interval

应该能看到类似:

"WATCHTOWER_POLL_INTERVAL=300"

三、排查更新未生效的原因

1. 检查是否有镜像更新

Watchtower 只会在镜像仓库有新版本时才会更新。确认你的镜像确实有新版本:

docker pull 你的镜像名:latest
docker images | grep 你的镜像名

2. 检查容器标签

某些标签会阻止 Watchtower 更新:

docker inspect 你的容器名 | grep -i watchtower.enable

如果看到 "com.centurylinklabs.watchtower.enable=false",说明该容器被排除在更新外。

3. 检查监控范围

默认 Watchtower 监控所有容器,但如果你指定了特定容器,确认包含了你想要更新的容器:

docker inspect watchtower | grep -A5 "Cmd"

四、测试 Watchtower 功能

1. 手动触发检查🎯

docker exec watchtower /watchtower --run-once

这会立即执行一次检查更新操作,查看日志确认:

docker logs watchtower --tail 50

2. 创建测试容器

启动一个专门用于测试的容器:

docker run -d --name test-watchtower alpine tail -f /dev/null

然后推送一个新版本的 alpine 镜像到仓库,观察 Watchtower 是否会更新这个测试容器。

五、常见问题解决方案

1. 时间间隔不生效

可能原因:

  • 环境变量名称拼写错误
  • 值格式不正确(必须是秒数)
  • Watchtower版本过旧

解决方案:

# 停止并删除旧容器
docker stop watchtower && docker rm watchtower# 使用最新版Watchtower并正确设置
docker run -d \--name watchtower \-v /var/run/docker.sock:/var/run/docker.sock \-e WATCHTOWER_POLL_INTERVAL=300 \containrrr/watchtower:latest

2. Watchtower 完全不工作

检查点:

  • 确保 Docker 守护进程正常运行
  • 检查 /var/run/docker.sock 的权限
  • 尝试使用 --debug 模式获取更多日志信息:
docker run -d \--name watchtower \-v /var/run/docker.sock:/var/run/docker.sock \-e WATCHTOWER_POLL_INTERVAL=300 \-e WATCHTOWER_DEBUG=true \containrrr/watchtower

然后查看详细日志:📃

docker logs watchtower

六、推荐的生产环境监控方案

对于生产环境,建议配置通知功能以便及时了解更新情况:

docker run -d \--name watchtower \-v /var/run/docker.sock:/var/run/docker.sock \-e WATCHTOWER_POLL_INTERVAL=300 \-e WATCHTOWER_NOTIFICATIONS=email \-e WATCHTOWER_NOTIFICATION_EMAIL_FROM=your@email.com \-e WATCHTOWER_NOTIFICATION_EMAIL_TO=admin@email.com \-e WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.email.com \-e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=587 \-e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=your@email.com \-e WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=yourpassword \containrrr/watchtower

通过以上步骤,你应该能够确定为什么5分钟更新间隔没有生效,并根据具体情况解决问题。如果问题仍然存在,可以提供更多日志信息以便进一步诊断。

七、分析日志

上面方法我都试了,然而还是不行,我就把日志拷贝出来分析了下,后来恍然大悟,有没有可能是我们拉取镜像时没有登录授权,因为这个镜像库是私有的。一拍脑袋,没错。日志如下:

time="2025-05-07T07:36:21Z" level=debug msg="Got response to challenge request" header="Bearer realm=\"https://dockerauth.cn-hangzhou.aliyuncs.com/auth\",service=\"registry.aliyuncs.com:cn-beijing:26842\"" status="401 Unauthorized"

1. 阿里云私有仓库认证失败(主要问题)

多个容器出现类似错误:

time="2025-05-07T07:36:21Z" level=debug msg="No credentials for registry.cn-beijing.aliyuncs.com found"
time="2025-05-07T07:36:21Z" level=debug msg="Error pulling image registry.cn-beijing.aliyuncs.com/itdos/os.itdos.com:latest, Error response from daemon: pull access denied..."

问题分析:

  • 所有来自 registry.cn-beijing.aliyuncs.com 的镜像都无法拉取
  • Watchtower 没有配置私有仓库的认证信息
  • 错误明确显示 "pull access denied"

根本原因:
私有仓库需要登录凭证,但 Watchtower 未配置这些凭证。

2. 解决方案

方案1:配置 Watchtower 使用私有仓库凭证
方法A:通过环境变量传递凭证

docker run -d \--name watchtower \-v /var/run/docker.sock:/var/run/docker.sock \-e REPO_USER=your_username \-e REPO_PASS=your_password \-e WATCHTOWER_POLL_INTERVAL=300 \containrrr/watchtower \--debug

方法B:使用 Docker 配置文件(推荐)
首先登录私有仓库:

docker login registry.cn-beijing.aliyuncs.com

然后启动 Watchtower 并挂载 Docker 配置文件:

docker run -d \--name watchtower \-v /var/run/docker.sock:/var/run/docker.sock \-v $HOME/.docker/config.json:/config.json \-e WATCHTOWER_POLL_INTERVAL=300 \containrrr/watchtower

3. 问题解决

我用了第一种方法,通过环境变量传递凭证

docker run -d \--name watchtower \-v /var/run/docker.sock:/var/run/docker.sock \-e REPO_USER=your_username \-e REPO_PASS=your_password \-e WATCHTOWER_POLL_INTERVAL=300 \containrrr/watchtower \--debug

果然问题解决✅

http://www.dtcms.com/wzjs/366383.html

相关文章:

  • 平阴县建设局网站佛山做网站的公司哪家好
  • 做室内效果图的网站百度app浏览器下载
  • 帮别人起名 做ppt的网站百度代理
  • 国外游戏ui设计网站alexa
  • 网站建设费可以抵扣么全网seo
  • 网站建设网站公司哪家好如何做好网络推广销售
  • 自己做淘宝客是不是需要建网站怎么创建域名
  • 企业网站关键字优化竞价推广sem
  • 温州移动网站建设服务商宁德市高中阶段招生信息平台
  • discuz怎么做h5网站一台电脑赚钱的门路
  • 做婚恋网站要多少钱竞价托管一般多少钱
  • 网站开发方案网络营销师报考条件
  • 网站开发成功案例seo自动优化软件安卓
  • asp 网站开发 软件seo发外链工具
  • wordpress新手seo网上课程
  • 学校网站建设维护seo新手教程
  • iis服务器网站301重定向怎么做城市分站seo
  • 公众号自己做电影网站吗自助网站建设平台
  • 专业做网站公司哪家好长春seo排名优化
  • 机械毕业设计代做网站营销网站定制
  • 怎样制作网站站点百度浏览器
  • 虚拟机wordpress建站济宁seo推广
  • 网站开发培训排名google store
  • 深圳网站设计要点拉新app推广平台
  • 测评网站怎么做竞价推广公司
  • axure做网站原型尺寸上海网站建设方案
  • 网站推荐广告模板鼓楼网站seo搜索引擎优化
  • 做自媒体有哪些网站企业网络推广网站
  • 网站制作排版注意事项制作网站推广
  • 做网站的产品图片怎么做蛋糕