簡體   English   中英

通過 Windows 上的 docker 安裝 Clickhouse 在主機上的數據目錄權限

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM