连接到容器内的 voltdb 失败,连接被拒绝

Connection to voltdb within container fails with connection refused

根据 docker 集线器 (https://hub.docker.com/r/voltdb/voltdb-community/) 上的信息,在将节点名称添加到我的 /etc/hosts 文件后,我能够启动这三个节点。我执行的命令:

docker pull voltdb/voltdb-community:latest

docker network create -d bridge voltLocalCluster
docker run -d -P -e HOST_COUNT=3 -e HOSTS=node1,node2,node3 --name=node1 --network=voltLocalCluster voltdb/voltdb-community:latest
docker run -d -P -e HOST_COUNT=3 -e HOSTS=node1,node2,node3 --name=node2 --network=voltLocalCluster voltdb/voltdb-community:latest
docker run -d -P -e HOST_COUNT=3 -e HOSTS=node1,node2,node3 --name=node3 --network=voltLocalCluster voltdb/voltdb-community:latest
docker exec -it node1 bash

sqlcmd
> Output:
Unable to connect to VoltDB cluster
    localhost:21212 - Connection refused

根据日志文件,voltdb 已启动并且 运行 正常。 有谁知道为什么连接被拒绝?

您必须遵循给定的示例并修正您的 HOSTS 参数。

它应该是 HOSTS=node1,node2,node3 而不是你的,这样你就可以让你的服务知道集群中的所有节点。

docker-entrypoint.sh 中可能存在错误,我还没有看到,因为我不需要手动连接到容器和 运行 这些命令,但这样做解决了我的问题:

docker exec -it node1 bash
voltdb init
voltdb start