以 Docker 方式运行客户端,为什么要挂载本地目录?
ZeroNews 客户端默认将配置文件写入到/etc/zeronews 目录下,客户端启动时默认从该目录读取配置,以获取客户端身份信息及映射配置,从而保证每次容器删除重启都能正确获取映射配置数据。
当 ZeroNews 容器不挂载宿主机目录,容器删除后配置文件会丢失;重启容器时因为没有配置文件,客户端会重新 authtoken 认证,从而会以全新的客户端加入到用户账号下,映射配置不会同步到该新的客户端上,需要用户手动重建映射。
以 Docker 方式运行客户端,为什么每次重启容器都是新客户端?
原因是启动容器时没有挂载宿主机目录到/etc/zeronews,导致认证配置(config.yml)每次随容器销毁而丢失。每次重启容器时,start.sh 检测到 /etc/zeronews/config.yml 不存在,就会重新执行 authtoken 认证并生成新的客户端身份。
解决方法:启动容器时加上挂载参数,例如:
如何停止 Docker 方式运行的客户端?
停止并删除当前运行的容器即可;注意保留挂载的配置目录,避免需要重新 authtoken 认证。容器部署的客户端怎么升级?
容器部署的客户端升级需要更新镜像版本。 docker run 方式:- 拉取最新版本镜像:
docker pull docker.zeronews.cc/zeronews/zeronews - 停止并删除当前运行的容器:
docker rm -f zeronews(注意:不要删除挂载的配置目录,否则需要重新 authtoken 认证) - 用相同的挂载参数重新启动容器(挂载宿主机目录到
/etc/zeronews)
- 拉取最新版本镜像:
docker compose pull - 重新运行容器:
docker compose restart