0

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

由于 docker 进程负责在主机上创建目录(/var/lib/clickhouse 的这些目录在使用 -v 标志运行 docker 之前不存在),我应该在我的主机实例?

我遇到了类似的东西:Application: Access to file denied: /var/lib/clickhouse/data。我的显式文件挂载是:/var/lib/clickhouse并且/var/lib/clickhouse/tmp按照配置文件中的规定。但由于 clickhouse 服务器进程似乎创建了更多目录,因此 docker 进程在尝试创建更多进程时被“拒绝”。

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

4

1 回答 1

1

正如我在https://hub.docker.com/r/yandex/clickhouse-server/~/dockerfile/中看到的, 您可以尝试在主机操作系统上运行

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

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

获取 id 后,您可以在主机操作系统上运行

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

于 2017-10-27T03:43:43.460 回答