【发布时间】:2020-05-04 00:30:38
【问题描述】:
我有一个 java spring boot 应用程序。 该应用程序使用 cassandra 作为数据存储,使用 kafka 进行消息传递。 我在本地使用 cassandra 和 zookeeper 和 kafka 的图像来运行它们。
我还为我的 Web 应用程序创建了 DockerFile,并构建文件以创建映像。
我的应用程序运行时,连接到 cassandra 数据库。
当我运行应用程序(intelij)时,它通过连接到 cassandra(作为 docker 运行)可以正常工作,但是当我在本地为同一个应用程序运行 docker 映像时,应用程序映像容器无法连接到本地运行的 cassandra 并且因此失败了。
我需要做什么才能运行应用程序的 docker 容器并连接到 cassandra。
【问题讨论】:
-
如何在应用程序中指定与 Cassandra 的连接详细信息?意味着您使用的是哪个主机:端口组合?我问这个是因为如果你使用 localhost 这将不起作用,因为 docker 容器内的 localhost 与你的机器不是同一个 localhost。
-
@Slacky 我明白了。是的,我正在使用本地主机。作为镜像运行时如何为 cassandra 指定端口?
-
我添加了解释作为答案,因为我预计
localhost会是这里的问题。端口应该是 cassandra 使用的端口。这里的问题是主机名而不是端口。 cassandra 容器将响应与以前相同的端口,并且可以由另一个容器到达。
标签: java docker cassandra dockerfile