Изменение порта Redis в Docker Compose не работает - PullRequest
1 голос
/ 14 мая 2019

У меня есть файл Docker Compose, который запускает две службы: Redis и Redis Commander. Использование порта Redis по умолчанию 6379 работает нормально. После изменения порта Redis на 6380 Redis Commander больше не может подключаться к 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: {}

Я могу подключиться к Redis через порт 6380, используя следующий код узла:

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)
  }
})

Если я переключу порт обратно на 6379 в docker-compose.yml, тогда Redis Commander сможет подключиться.

Любые предложения о том, как я могу подключить Redis Commander к Redis через порт 6380?

Ответы [ 2 ]

1 голос
/ 14 мая 2019

Ответ @Mihai помог мне найти решение.Мне нужно было изменить порт, на котором работает Redis, а также открытый порт.Это рабочий файл компоновки Docker.

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: {}
1 голос
/ 14 мая 2019

Вы изменили открытый порт на хосте. Вы не изменили внутренний порт в контейнере. Ваш экземпляр Redis продолжает работать на порте по умолчанию (6379).

Также это утверждение expose: - "6380" можно опустить, поскольку оно бесполезно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...