通过 docker 安装 Clickhouse 的主机数据目录权限

Data directory permissions on host for Clickhouse installation via docker

我的 clickhouse 设置是通过 docker (https://hub.docker.com/r/yandex/clickhouse-server/~/dockerfile/)。目前,我 运行 在将数据目录 (/var/lib/clickhouse) 从容器挂载到主机时遇到了一些问题,因为我想在容器运行时之外保留数据。

因为 docker 进程负责在主机上创建目录(/var/lib/clickhouse 的这些目录直到 运行 docker 带有 -v 标志才存在), 我应该在我的主机实例上提供什么权限 and/or 目录结构?

我遇到了类似这样的事情:Application: Access to file denied: /var/lib/clickhouse/data。我的显式文件挂载是:配置文件中规定的 /var/lib/clickhouse/var/lib/clickhouse/tmp。但是由于 clickhouse 服务器进程似乎创建了更多目录,因此 docker 进程在尝试创建更多进程时正在 "rejected"。

可以 显式挂载 /data 等,但这做出了配置之外的假设。此外,如果我给予慷慨的权限顶部 /var/clickhouse,这 确实 工作: chmod 777 /var/clickhouse 但我想确保这是最佳实践。

如我所见https://hub.docker.com/r/yandex/clickhouse-server/~/dockerfile/ 您可以在主机 OS

上尝试 运行

docker run --rm -i --entrypoint /bin/sh yandex/clickhouse-server -c id clickhouse

uid=105(clickhouse) gid=106(clickhouse) groups=106(clickhouse)

获得id后,你可以在主机OS运行上运行

chown -R 105:106 /var/lib/clickhouse