以 Docker 方式运行客户端,为什么要挂载本地目录?

ZeroNews 客户端默认将配置文件写入到 /etc/zeronews 目录下,客户端启动时默认从该目录读取配置,以获取客户端身份信息及映射配置,从而保证每次容器删除重启都能正确获取映射配置数据。 当 ZeroNews 容器不挂载宿主机目录,容器删除后配置文件会丢失;重启容器时因为没有配置文件,客户端会重新 authtoken 认证,从而会以全新的客户端加入到用户账号下,映射配置不会同步到该新的客户端上,需要用户手动重建映射。

以 Docker 方式运行客户端,为什么每次重启容器都是新客户端?

原因是启动容器时没有挂载宿主机目录到 /etc/zeronews,导致认证配置(config.yml)每次随容器销毁而丢失。每次重启容器时,start.sh 检测到 /etc/zeronews/config.yml 不存在,就会重新执行 authtoken 认证并生成新的客户端身份。 解决方法:启动容器时加上挂载参数,例如:
docker run -v /宿主机路径/zeronews:/etc/zeronews ...
这样配置文件会持久化到宿主机,容器重启后复用同一客户端身份。

如何停止 Docker 方式运行的客户端?

停止并删除当前运行的容器即可;注意保留挂载的配置目录,避免需要重新 authtoken 认证。

容器部署的客户端怎么升级?

容器部署的客户端升级需要更新镜像版本。 docker run 方式:
  1. 拉取最新版本镜像:docker pull docker.zeronews.cc/zeronews/zeronews
  2. 停止并删除当前运行的容器:docker rm -f zeronews(注意:不要删除挂载的配置目录,否则需要重新 authtoken 认证)
  3. 用相同的挂载参数重新启动容器(挂载宿主机目录到 /etc/zeronews
docker compose 方式:
  1. 拉取最新版本镜像:docker compose pull
  2. 重新运行容器:docker compose restart