반응형

Redis web UI를 사용하기 위한 Reids Commander를 사용할 때 Docker Compose를 사용할 경우 일반적으로 다음과 같이 레디스와 함께 사용한다.

# docker-compose.yml

version: '3'
services:
  redis:
    container_name: redis
    hostname: redis
    image: redis

  redis-commander:
    container_name: redis-commander
    hostname: redis-commander
    image: ghcr.io/joeferner/redis-commander:latest
    restart: always
    environment:
    - REDIS_HOSTS=local:redis:6379
    ports:
    - "8081:8081"
    extra_hosts:
      - host.docker.internal:host-gateway

위와 같이 같이 사용할 경우는 같은 네트워크상에서 컨테이너가 올라가기 때문에 연결이 불가능하다. 아래와 같이 Host를 입력한다면 오류가 발생하게 된다

REDIS_HOSTS=localhost:6379
Redis error Error: connect ECONNREFUSED 0.0.X.X:6379

 

만약 호스트 컴퓨터에 레디스를 띄우고 있다면 다음과 같이 변경하면 된다. 

version: '3'
services:
  redis-commander:
    container_name: redis-commander
    hostname: redis-commander
    image: ghcr.io/joeferner/redis-commander:latest
    restart: always
    environment:
    - REDIS_HOSTS=local:host.docker.internal:6379
    ports:
    - "8081:8081"

host.docker.internal를 사용하면 호스트의 로컬호스트에 접근할 수 있다.

 

Redis Commander의 Environment

REDIS-HOSTS는 Redis Commander의 호스트 주소를 의미하는데 콜론으로 다음과 같이 구분한다

Label:Host:Port

이와 같은 형식으로 위의 yaml을 보자면 

Labal = local
Host = host.docker.internal
Post = 6379

로 각각 의미하는것을 볼 수 있다.

여러 호스트로 연결

위의 형식대로 입력하면서 콜론(,)으로 구분하면 여러개의 호스트를 입력할 수 있다.

version: '3'
services:
  redis-commander:
    container_name: redis-commander
    hostname: redis-commander
    image: ghcr.io/joeferner/redis-commander:latest
    restart: always
    environment:
    - REDIS_HOSTS=local:[host1]:6379,product:[host2]:6379
    ports:
    - "8081:8081"

위와 같이 작성하게 되면 local, product 두개의 호스트로 연결되게 할 수 있다.

 

REDIS_HOSTS에 관련된 내용은 아래에서 확인할 수 있다

https://github.com/joeferner/redis-commander/blob/master/docs/connections.md

반응형

+ Recent posts