我正在使用最新的 Cassandra docker 鏡像。當我以 root 權限運行它時,cqlsh 能夠按預期連接到 Cassandra 服務:
$ sudo docker run --name mycassandra -d cassandra:latest
$ sudo docker exec -it mycassandra bash
# cqlsh
Connected to Test Cluster at 127.0.0.1:9042
[cqlsh 6.0.0 | Cassandra 4.0.3 | CQL spec 3.4.5 | Native protocol v5]
Use HELP for help.
cqlsh>
但是,如果我以普通用戶權限運行 docker 映像,則在使用 cqlsh 時會出現錯誤:
$ docker run --name mycassandra1 -d cassandra:latest
$ docker exec -it mycassandra1 bash
# cqlsh
Connection error: ('Unable to connect to any servers', {'127.0.0.1:9042':
ConnectionRefusedError(111, "Tried connecting to [('127.0.0.1', 9042)]. Last error:
Connection refused")})
我不喜歡將 docker image 作為 sudo 運行。想知道為什么 Cassandra 映像需要 sudo 權限。謝謝。
uj5u.com熱心網友回復:
看起來您是該docker組的成員,因為您可以在沒有 sudo 的情況下運行 docker。無論您是否使用 sudo 運行它都不應該有所作為。容器在這兩種情況下都以 root 身份運行,您可以#在這兩種情況下通過 bash 提示符進行驗證。
我認為正在發生的是你試圖cqlsh在容器完成啟動之前運行。檢查容器日志并確保Startup complete在嘗試運行之前看到了cqlsh.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/472213.html
上一篇:無法與elasticsearch8.1(java)建立連接
下一篇:Docker,輸出被隱藏
