【问题标题】:Connecting to cassandra running in Docker连接到在 Docker 中运行的 cassandra
【发布时间】:2018-05-20 05:20:48
【问题描述】:

我正在尝试在 docker 容器中运行 Cassandra 并从我的 Mac(主机)连接到它,但我不断收到 Connection denied 错误。

docker 命令:

=> docker run --rm --name cassandra -d cassandra:3.11 -p 9042:9042

=> docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                    NAMES
4ecc9dcd8647        cassandra:3.11      "/docker-entrypoin..."   33 minutes ago      Up 33 minutes       7000-7001/tcp, 7199/tcp, 9042/tcp, 9160/tcp   cassandra

=> cqlsh
Connection error: ('Unable to connect to any servers', {'127.0.0.1': 
error(61, "Tried connecting to [('127.0.0.1', 9042)]. Last error: 
Connection refused")})

如果我在实例中执行 bash shell:

=> docker exec -it cassandra bash

我可以在本地运行 cqlsh 并连接到 cassandra。

我错过了什么?

【问题讨论】:

    标签: docker cassandra


    【解决方案1】:

    端口仍然没有暴露在外面 试试这个

    • docker run -p 9042:9042 --rm --name cassandra -d cassandra:3.11

    执行 docker ps 你应该会看到类似这样的东西

    • 0.0.0.0:9042->9042/tcp

    欲了解更多信息:https://docs.docker.com/engine/reference/commandline/run/

    【讨论】:

    • 谢谢!我很惊讶选项顺序很重要。你知道它是否记录在某处吗?
    【解决方案2】:

    在 docker 镜像名称之后传递的任何内容都被视为容器入口点的参数。

    cassandra:3.11 -p 9042:9042
    

    所以实际上 docker pass -p 9042:9042 this 作为入口点的参数,您可以通过检查 docker 容器来实现这一点。

    运行和发布端口

    docker run -it  - - name cassandra -e CASSANDRA_PASSWORD=cassandra --rm docker.io/bitnami/cassandra:3-debian-10
    

    一旦容器启动,然后验证连接

    docker exec -it cassandra bash -c "cqlsh -u cassandra -p cassandra"
    

    【讨论】:

      猜你喜欢
      • 2023-02-10
      • 2021-01-02
      • 2019-08-13
      • 2021-02-03
      • 2021-09-26
      • 2014-10-23
      • 1970-01-01
      • 1970-01-01
      • 2021-02-15
      相关资源
      最近更新 更多