更改Docker中的Redis端口不起作用



我有一个docker组成的文件,该文件启动了两个服务:redis和redis commander。使用默认的redis端口6379工作正常。将REDIS端口更改为6380 REDIS指挥官无法再连接到Redis。

错误:

setUpConnection Redis error Error: connect ECONNREFUSED 172.19.0.2:6380

这是docker-compose.yml文件:

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: {}

i可以使用以下节点代码在端口6380上连接到redis:

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 Commander可以连接。

有什么建议,我如何使Redis Commander在端口6380上连接到Redis?

@mihai Helpt我的答案找出解决方案。我需要更改REDIS以及裸露端口的端口。这是工作码头组成的文件。

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: {}

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

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

端口转发命令将将主机计算机上的端口映射到Docker容器上的端口。请注意,左侧的端口是指:在这种情况下为6380的端口,但是主机上的Redis在端口6380上运行。默认情况下,容器上的Redis将在端口6379上运行。它在所需的端口命令上 - 端口<< port_number>>>应使用。

最新更新