[英]Data directory permissions on host for Clickhouse installation via docker on Windows
我對以下鏈接有類似的問題,但在 powershell 中,因為我在 windows 10 中運行 clickhouse docker 容器。
通過 docker 安裝 Clickhouse 的主機數據目錄權限
我的設置是這樣運行的:
docker run -d -p 8124:8124 --name my_database --ulimit nofile=262144:262144 --volume=E:/:/var/lib/clickhouse yandex/clickhouse-server
E盤是我windows電腦上的其中一個盤。
運行合並樹表創建時,我似乎無法訪問 /var/lib/clickhouse/data。 似乎沒有為 clickhouse 客戶端提供訪問此文件系統的足夠權限。 錯誤看起來是這樣的:
Access to file denied: /var/lib/clickhouse/data/default/test_mergetree/tmp_insert_20150731_20150731_8_8_0
因為我在 powershell,所以我不確定我該如何解決這個問題。 我正在嘗試訪問文件系統以授予 powershell 權限:
像這樣的東西
ICACLS "var/lib/clickhouse/data" /setowner "administrator"
但是由於 clickhouse 是 dockerized 似乎我找不到路徑:
The system cannot find the path specified.
我必須運行 docker 撰寫嗎? 還是我以錯誤的方式接近這個?
嘗試 1
我試過運行以下命令:
docker run --rm -i --entrypoint /bin/sh yandex/clickhouse-server -c id clickhouse
#got back:
uid=0(root) gid=0(root) groups=0(root)
#went into the system and ran
docker exec -it container-id bash
chown -R 0:0 /var/lib/clickhouse
#got back
chown: cannot read directory '/var/lib/clickhouse/System Volume Information': Permission denied
原來這是Windows docker桌面上尚未修復的問題:
https://github.com/docker/for-win/issues/39
卷裝載是必要的。 但是我通過將磁盤映像更改為目標主機驅動器來解決了這個問題。 在設置->高級->下,將虛擬硬盤映像更改為所需的驅動器,然后可以在該驅動器中進行寫入。 請注意,您仍然無法訪問原始數據。
您應該在Linux(而不是Windows)中運行docker和clickhouse。
仍然是一個問題,但實際的解決方案是移動到 Docker 卷。 使用 bind mount wsl2 有問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.