首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Docker Compose中更改Redis端口不起作用

在Docker Compose中更改Redis端口不起作用
EN

Stack Overflow用户
提问于 2019-05-15 01:44:24
回答 2查看 10.2K关注 0票数 11

我有一个Docker编写文件,它启动了两个服务: Redis和Redis Commander。使用默认的Redis端口6379运行良好。将Redis端口更改为6380后,Redis指挥官将无法再连接到Redis。

错误:

代码语言:javascript
运行
复制
setUpConnection Redis error Error: connect ECONNREFUSED 172.19.0.2:6380

这是docker-compose.yml文件:

代码语言:javascript
运行
复制
version: '3.7'
services:
  redis:
    container_name: redis
    hostname: redis
    image: sameersbn/redis:4.0.9-2
    ports:
      - "6380:6379"
    expose:
      - "6380"
    volumes:
      - type: volume
        source: redis-data
        target: /data
    restart: always
  redis-commander:
    container_name: redis-commander
    hostname: redis-commander
    image: rediscommander/redis-commander:latest
    restart: always
    environment:
      - REDIS_HOSTS=local:redis:6380
    ports:
      - "8082:8081"
volumes:
  redis-data: {}

我可以使用以下节点代码连接到6380端口上的Redis:

代码语言:javascript
运行
复制
import redis from 'redis'

const config = {
  host: '127.0.0.1',
  port: 6380,
  no_ready_check: true
}

const client = redis.createClient(config.port, config.host)

client.set('expireName', 'nidkil', (err, reply) => {
  if (err) {
    console.error('Error occurred:', err)
  } else {
    console.log('Response:', reply)
  }
})

如果我在docker-compose.yml中将端口改回6379,那么Redis指挥官就可以连接了。

有什么建议吗?如何让Redis指挥官通过6380端口连接到Redis?

EN

回答 2

Stack Overflow用户

发布于 2019-05-15 02:25:23

@Mihai的答案帮助我找到了解决方案。我需要更改Redis运行的端口以及暴露的端口。这是working Docker compose文件。

代码语言:javascript
运行
复制
version: '3.7'
services:
  redis:
    container_name: redis
    hostname: redis
    image: sameersbn/redis:4.0.9-2
    command: --port 6380
    ports:
      - "6380:6380"
    expose:
      - "6380"
    volumes:
      - type: volume
        source: redis-data
        target: /data
    restart: always
  redis-commander:
    container_name: redis-commander
    hostname: redis-commander
    image: rediscommander/redis-commander:latest
    restart: always
    environment:
      - REDIS_HOSTS=local:redis:6380
    ports:
      - "8082:8081"
volumes:
  redis-data: {}
票数 18
EN

Stack Overflow用户

发布于 2019-05-15 01:54:45

您更改了主机上暴露的端口。您没有更改容器中的内部端口。您的redis实例将继续在默认端口(6379)上运行。

此外,此语句expose: - "6380"可以省略,因为它没有用处。

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

https://stackoverflow.com/questions/56135881

复制
相关文章

相似问题

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