c++ 如何将Dockerized NATS客户端连接到运行在另一个Docker容器中的NATS服务器?

jm2pwxwz  于 2023-08-09  发布在  Docker
关注(0)|答案(1)|浏览(170)

我有两个Docker容器,一个运行NATS I/O服务器,另一个充当客户端。两个容器彼此隔离。我希望客户端连接到NATS服务器,但我不确定应该使用哪个地址来建立连接。
在我的客户端代码中引起混淆的行是:

s = natsConnection_ConnectTo(&conn, "nats://localhost:4222");

字符串
我应该使用什么地址来使客户端成功连接到在单独的Docker容器中运行的NATS服务器?
任何帮助将不胜感激!

7fhtutme

7fhtutme1#

选项一

您可以将运行服务器docker run -p 4222:4222的docker容器的端口转发到主机,然后使用docker run --add-host=host.docker.internal:host-gateway通过host.docker.internal通过客户端docker容器访问它
https://medium.com/@TimvanBaarsen/how-to-connect-to-the-docker-host-from-inside-a-docker-container-112b4c71bc66

选项二

另一种选择是为容器创建一个共享网络。
https://docs.docker.com/network/network-tutorial-standalone/

选项三

形成网络的一个简单方法是将它们打包到一个docker compose文件中。然后,您可以通过其各自的服务名称访问它们。
https://docs.docker.com/compose/networking/

相关问题