【发布时间】:2015-08-25 10:27:25
【问题描述】:
我接到了一项在 Docker 上运行 Cassandra 的研发任务。我正在开发 XUbuntu 14.04.2 64 位(安装在 Windows7 32 位操作系统的 VirtualBOX 上)。
我按照Docker on Ubuntu 和Pokle cassandra 教程中给出的步骤操作,当我尝试使用nodetool 检查特定节点的状态时,我得到了一个ConnectException。
以下是我执行的步骤列表。
asela@teamlk:~$ docker run -d --name cass1 poklet/cassandra start
7b2ddfb60adf1c270a425c4440fe263e1fe56f5dc1c3205372bee3b8626e0624
asela@teamlk:~$ docker run -d --name cass2 poklet/cassandra start $(/data/cassandra/scripts/ipof.sh cass1)
4f98a194214e603242279226bb94cee20774058e84b6d0171a8d14d648e19016
asela@teamlk:~$ docker run -d --name cass3 poklet/cassandra start $(/data/cassandra/scripts/ipof.sh cass1)
394f9ce918121c0b79ed8282ba95c8f1badd4e3536d4ad3f24c4c21651e50b3c
asela@teamlk:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
394f9ce91812 poklet/cassandra:latest "start 172.17.0.1" 6 seconds ago Up 3 seconds 22/tcp, 7000-7001/tcp, 7199/tcp, 8012/tcp, 9042/tcp, 9160/tcp, 61621/tcp cass3
4f98a194214e poklet/cassandra:latest "start 172.17.0.1" 31 seconds ago Up 29 seconds 22/tcp, 7000-7001/tcp, 7199/tcp, 8012/tcp, 9042/tcp, 9160/tcp, 61621/tcp cass2
7b2ddfb60adf poklet/cassandra:latest "start" About a minute ago Up About a minute 22/tcp, 7000-7001/tcp, 7199/tcp, 8012/tcp, 9042/tcp, 9160/tcp, 61621/tcp cass1
asela@teamlk:~$ docker run -i -t poklet/cassandra nodetool -h $(/data/cassandra/scripts/ipof.sh cass1) status
nodetool: Failed to connect to '172.17.0.1:7199' - ConnectException: 'Connection refused'.
ifconfig 显示我的 Docker 正在 172.17.42.1 上运行
谁能告诉我我是否遗漏了任何配置和/或我做错了什么?
【问题讨论】:
-
您解决了这个问题吗?我现在正在为此苦苦挣扎:(
-
@Aides 我刚刚放弃使用 Cassandra 和 docker。我只是单独安装了 Cassandra。它工作正常。真的很抱歉,帮不了你。 :(
-
实际上看起来我至少已经为自己解决了这个问题。这是详细信息。 github.com/pokle/cassandra/pull/28我打算尽快将更改上传到存储库中。
-
@Aides:你会考虑对你的发现给出答案吗?它可能对某人有帮助。谢谢!
-
如果从以下答案的语言中不清楚,问题是您在调用 nodetool 时需要使用“exec”而不是“run”。 Docker(和 docker-compose)将启动一个新容器来“运行”命令,但在使用“exec”时连接到现有的、正在运行的容器。由于您想在 localhost 上连接到正在运行的 cassandra,因此您需要 exec。
标签: ubuntu cassandra docker nodetool connectexception