首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >成群的码头集装箱不能互相看见

成群的码头集装箱不能互相看见
EN

Stack Overflow用户
提问于 2018-01-17 20:00:03
回答 1查看 175关注 0票数 2

我才刚开始学码头。我有一个群集运行,我试图让我的asp.net核心应用程序与一个红色服务器通信。我没想到我会有这么多问题

我的船坞-写作:

代码语言:javascript
复制
version: ‘3.3’

services:
   webfarm_api:
     image: dispersia/webfarm.api
     ports:
       - 8080:80
     environment:
       - SERVICE_PORTS=8080
     depends_on:
       - webfarm_redis

  webfarm_redis:
    image: dispersia/redis
    ports:
      - 6379:6379
    volumes:
      - ‘redis:/data’

volumes:
  redis:

我已经将我的redis.conf设置为绑定到0.0.0.0,在我的应用程序中

代码语言:javascript
复制
services.AddDistributedRedisCache(options =>
{
    options.Configuration = “0.0.0.0”;
    options.InstanceName = “redisInstance”;
});

如果我手动运行一个redis服务器和我的asp.net核心应用程序之外的码头,他们看到了彼此和所有的工作,但我不能为我的生活使它在码头内工作。

如果我运行码头检查网络prod_default,我会发现两个容器都在运行,它们确实有不同的IP (10.0.0.6/24)和(10.0.0.4/24),但是我认为0.0.0.0将允许任何容器在同一个网络中看到它。如果我的假设有误,请告诉我。

这是让这些容器沟通的正确方式吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-17 22:44:26

127.0.0.1vs 0.0.0.0取自https://superuser.com/questions/949428/whats-the-difference-between-127-0-0-1-and-0-0-0-0的描述

127.0.0.1和0.0.0.0有什么区别?

127.0.0.1是环回地址(也称为localhost)。

0.0.0.0是一个不可路由的元地址,用于指定无效、未知或不适用的目标(无特定地址占位符)。

在路由条目的上下文中,它通常意味着默认的路由。

在服务器上下文中,0.0.0.0的意思是“本地计算机上的所有IPv4地址”。如果一个主机有两个IP地址,192.168.1.110.1.2.1,并且在主机上运行的服务器在0.0.0.0上侦听,那么在这两个IP上都可以找到它。

那这是什么意思?这意味着在您的独立应用程序容器中,您告诉应用程序查看这个端口上的Redis实例的本地主机,这不是真的,因为Redis运行在一个单独的孤立Redis容器中。

您想要做的是在您的应用程序中使用您的webfarm_redis名称,这将询问Docker服务在哪里webfarm_redis,它将给您码头的Redis IP。

代码语言:javascript
复制
services.AddDistributedRedisCache(options =>
{
    options.Configuration = “webfarm_redis”;
    options.InstanceName = “redisInstance”;
});

我会将webfarm_redis作为环境变量传递,这样就可以在不重新构建的情况下对其进行更改。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48309079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档