docker - Cassandra docker 镜像中的 CASSANDRA_PORT_9042_TCP_ADDR
问题描述
我是 Cassandra 的新手,我开始使用 Docker 容器来学习它。对于 docker 镜像,我指的是https://hub.docker.com/_/cassandra/,它提供了官方的 Cassandra docker 镜像。
页面中从cqlsh连接到 Cassandra部分使用
exec cqlsh "$CASSANDRA_PORT_9042_TCP_ADDR"
通过 cqlsh 连接时。该变量$CASSANDRA_PORT_9042_TCP_ADDR
包含原始 Cassandra 容器的 IP 地址。我正在搜索该变量CASSANDRA_PORT_9042_TCP_ADDR
,但我无法找到它的定义位置和方式。
我还查看了 Cassandra 文档,但在那里也没有找到任何东西。我还 grep'd 进入了整个 Cassandra 容器。谁能提供有关环境变量的更多详细信息?
解决方案
当您与其他容器链接时,Docker 会自动创建此变量。它的格式为<name>_PORT_<port>_<protocol>
, where <name>
is CASSANDRA
,默认端口为 9042... 更多详细信息,请参阅Docker 文档。
但是cqlsh
直接在已经运行的容器中运行而不是创建一个新实例并将其链接到 Cassandra 容器可能更简单。只需执行:
docker exec -ti <container_name_or_hash> cqlsh