2016 - 2024

感恩一路有你

docker部署redis集群 怎么用除了宿主机ip之外的其它ip从宿主机浏览器访问docker容器?

浏览量:1558 时间:2021-03-17 12:02:27 作者:admin

怎么用除了宿主机ip之外的其它ip从宿主机浏览器访问docker容器?

我不知道尤里卡是什么,但我理解你所描述的问题。让我告诉你一些类似于redis的事情。我希望它能给你带来一些想法。

在redis4.0之前,在docker中构建redis群集不支持natted环境。Redis集群具有碎片化的概念,即一个密钥的数据按照碎片化规则落在不同的节点上。当您访问落在节点B上的密钥时,redis server会返回move,但是在docker中,我们使用私有IP地址和端口来映射容器,所以redis server返回给redis客户端的移动信息是B节点的私有IP地址和B节点所在容器的映射端口。因此,redis客户端无法访问B节点的私有IP地址和端口。

在redis 4.0之前,我们在docker中构建了一个redis集群。我们使用了--net主机网络模式。redis4.0之后,正式提供了natted环境下IP地址和端口的映射。

解决方案1:运行容器时设置--net host,使容器可以直接使用主机的IP和端口,但每个容器的Eureka对应的配置端口应该设置为不同的,否则会出现端口冲突。

解决方案2:配置Eureka时,将容器和主机的专用IP地址和端口之间的映射关系写入Eureka配置。

docker从容器中怎么访问宿主机?

docker与主机的交互是通过本机网络实现的。docker进程启动时,它将在主机上配置一个名为docker 0的虚拟网桥。此接口允许docker将虚拟子网分配给即将启动的容器。此网桥将充当容器中网络与主机网络之间接口的主节点。docker容器启动后,将创建一个新的虚拟接口,并在网桥子网中分配一个IP地址。此IP地址嵌入到容器网络中,用于提供从容器网络到docker 0网桥的通道。Docker自动配置iptables规则来释放和配置NAT。在主机上连接docker 0后,可以访问主机的MySQL数据文件。

docker从容器中怎么访问宿主机?

docker构建LNMP环境后,如果需要访问主机上安装的数据库或中间件,则不能直接使用IP 127.0.0.1,它指向容器中的容器本身。如何访问主机例如,如果docker环境的虚拟IP是192.168.99.100,那么主机也将承载一个与192.168.99.100网段相同的虚拟IP,主机IP将是192.168.99.1。在容器中很容易访问192.168.99.1,这相当于访问主机。请注意,通过192.168.99.1访问主机相当于更改IP如果库或中间件限制本地访问或IP段限制,请记住将192.168.99.1添加到白名单

有两种常见方案;

方案1:

主机执行ifconfig

它将看到docker 0的IP,您可以使用访问的主机询问主机。

方案2:[批准]主机.docker.internal

127.0.0.1添加到主机文件主机.docker.internal

docker部署redis集群 docker安装redis集群 docker部署redis

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。