为什么 Cassandra docker 映像需要 运行 的 root 权限?
Why does Cassandra docker image require root privileges to run?
我正在使用最新的 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 image 具有普通用户权限,我在使用 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 图像作为 sudo。想知道为什么 Cassandra 图像需要 sudo 权限。谢谢
看来您是 docker
组的成员,因为您可以 运行 docker 不使用 sudo。无论你 运行 有没有 sudo 都不应该有什么不同。在这两种情况下,容器 运行 都是根目录,您可以在这两种情况下通过 #
bash 提示进行验证。
我认为正在发生的事情是您试图 运行 cqlsh
在容器完成启动之前。检查容器日志并确保在尝试 运行ning cqlsh
.
之前看到 Startup complete
我正在使用最新的 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 image 具有普通用户权限,我在使用 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 图像作为 sudo。想知道为什么 Cassandra 图像需要 sudo 权限。谢谢
看来您是 docker
组的成员,因为您可以 运行 docker 不使用 sudo。无论你 运行 有没有 sudo 都不应该有什么不同。在这两种情况下,容器 运行 都是根目录,您可以在这两种情况下通过 #
bash 提示进行验证。
我认为正在发生的事情是您试图 运行 cqlsh
在容器完成启动之前。检查容器日志并确保在尝试 运行ning cqlsh
.
Startup complete