我正在使用最新的卡桑德拉码头图像。当我以根权限运行它时,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")})
我不喜欢像苏多那样去码头。不知道为什么卡桑德拉图像需要sudo特权。谢谢。
发布于 2022-05-09 15:22:50
看起来您是docker
组的成员,因为您可以在没有sudo的情况下运行docker。不管你用不带sudo运行它,都不会有什么区别。在这两种情况下,容器都以根用户的身份运行,在这两种情况下,您都可以通过#
bash提示符进行验证。
我认为正在发生的情况是,在容器完成启动之前,您正在尝试运行cqlsh
。在尝试运行Startup complete
之前,请检查容器日志并确保您看到了cqlsh
。
https://stackoverflow.com/questions/72174133
复制相似问题