在使用 Tarantool Cartridge 应用时,我应该使用 docker 设置网络地址吗?

当我使用 docker 打包一个应用时,我该如何配置网络地址?

点赞
用户13626536
用户13626536

tarantool cartridge 中的网络连接逻辑不取决于您使用常规虚拟机还是 Docker。您需要使tarantool实例能够通过TCP和UDP互相达到。

在Docker中,这意味着:

设置在同一个内部网络上的容器

并使用内部网络地址将实例连接在一起。默认情况下,同一内部网络中的实例将能够在任何tcp/udp端口上互相到达。如果要多台计算机共享同一内部网络,则可以配置Docker Swarm,它将给您提供一个跨多台计算机的所谓“覆盖网络”。

绑定到主机的端口

在运行容器时,您可以使用 -p 3301: 3301/tcp -p 3301:3301/udp来传递给 docker run。它将使容器中的端口对外部网络在主机上暴露。务必始终暴露UDP端口,否则实例将无法通过gossip 协议互相通信。

除此之外,由于您更改了实例的公共地址为主机的IP而不是内部容器的IP,因此您还需要指定更改tarantool实例的广告URI的其他参数。可以使用以下选项来实现: docker run-e TARANTOOL_ADVERTISE_URI=<your_host_ip>:3301

2020-06-01 08:55:27