当前位置: 首页 > 知识库问答 >
问题:

Docker容器中的Redis和服务

酆阳煦
2023-03-14

我有一个运行Ubuntu的服务器,安装了Redis和Docker。我正在创建托管在Docker容器中的服务。如何将Docker容器中运行的服务与Docker外部运行的Redis连接起来?

我可以ping服务器。ioredis驱动程序无法连接到redis。错误:connect ECONREFUSE:6379

共有2个答案

谢财
2023-03-14

查找主机的IP(本地网络IP)。

Linux/Mac:

$ ifconfig

窗户:

$ ipconfig

例如,它将类似于192.168.1.43

使用服务启动容器,并检查是否可以从容器192.168.1.43。

您甚至可以启动redis容器来使用redis cli来测试连接。

$ docker container run --rm -it redis sh

在容器内执行:

# redis-cli -h 192.168.1.43 PING

为了实现这一点,我必须禁用主机上的防火墙。我正在使用fedora,因此命令是:

$ service firewalld stop

另外,请使用以下选项之一:

如果要从外部计算机连接到Redis,可以采用以下解决方案之一:1)通过从服务器运行的同一主机连接到Redis,从环回接口发送命令“CONFIG SET protected mode no”,即可禁用受保护模式,然而,若你们这样做的话,请确保Redis不能从互联网上公开访问。使用“配置重写”将此更改永久化。2) 或者,您可以通过编辑Redis配置文件,将受保护模式选项设置为“否”,然后重新启动服务器来禁用受保护模式。3) 如果只是为了测试而手动启动服务器,请使用“--protectedmodeno”选项重新启动服务器。4) 设置绑定地址或身份验证密码。注意:您只需要执行上述操作之一,服务器就可以开始接受来自外部的连接。

因为不这样做将导致错误时,从外部主机发送命令,在这种情况下docker容器。

裴金鑫
2023-03-14

通过在容器中运行的服务,您将能够连接到redis等外部服务。您还可以通过在巡更容器内执行ping命令来验证这一点

docker exec-it#容器id#sh

ping#redis ip地址#

 类似资料:
  • 我正在使用Spring Cloud创建微服务架构。 我正在使用Spring Cloud中的以下功能 Zuul–API网关服务,提供动态路由、监控、弹性、安全等功能- 功能区–客户端负载平衡器 Faign–声明性REST客户端 Eureka–服务注册和发现 Sleuth–通过日志进行分布式跟踪 Zipkin–具有请求可视化的分布式跟踪系统 Hystrix-适用于所有API的断路器、容错、Hystri

  • 我的docker版本是1.13.1。我正试图从我的docker容器连接到redis-server,但我遇到了拒绝连接的错误。详细的日志如下: 原因:redis.clients.jedis.exceptions.jedisconnectionException:java.net.Connection:redis.clients.jedis.Connection(Connection.java:207

  • 问题内容: 我正在通过docker compose中的选项。显然,您可以从容器或服务导入卷。从docker compose文档中是: volume_from 从另一个服务或容器挂载所有卷,可以选择指定只读访问(ro)或读写(rw)。 注意:仅版本2文件格式支持container:…格式。在版本1中,您可以使用容器名称而无需将其标记为: 我很困惑,这里的容器和服务有什么区别? 问题答案: 服务和容器

  • 这是Node.js应用程序。 为了部署应用程序,我分别使用了一个node.js容器和一个redis容器,并将node.js容器与redis容器链接起来。 redis容器可通过以下方法获得 但我有个错误说: 由于redis容器暴露于6379,而我的nodejs容器正在链接到redis容器。在我的Node.js应用程序中,使用端口6379连接到localhost redis服务器应该是可以的,但实际上

  • 我无法用redis数据库中的数据创建docker redis容器的图像。目前,我正在这样做: 很明显,我对一些基本的东西不太了解。docker commit不是从现有容器创建新映像吗? 好吧,我一直在挖掘。hub上的默认redis图像。docker使用一个数据卷,然后将其装入容器中的/data。为了在容器之间共享此卷,必须使用以下参数启动一个新容器: 请注意,参数的顺序很重要,否则docker r

  • 问题内容: 我对docker,redis和任何类型的网络都是陌生的(至少我了解python!)。首先,我想出了如何获取redis docker映像并在docker容器中运行它: 据我了解,此Redis实例具有可用于连接其他容器的端口6379。 如果运行以下命令,则可以与redis实例进行交互并生成key:value对: 我已经弄清楚如何制作并运行安装了redis库的docker容器,该容器将运行p