본문 바로가기

리눅스

Predixy 도커 컴포즈(Docker Compose)로 구성하는 방법

728x90
반응형

Predixy 도커 컴포즈(Docker Compose)로 구성하는 방법

Predixy는 Redis와 같은 인메모리 데이터베이스를 캐싱하기 위한 프록시 서버입니다. 이를 Docker Compose를 사용하여 구성하는 방법은 다음과 같습니다.

1. Docker Compose 파일 생성

먼저, Predixy와 Redis를 함께 사용하는 Docker Compose 파일을 생성합니다. 예를 들어, docker-compose.yml 파일을 다음과 같이 작성합니다.

vim docker-compose.yml
version: '3'
services:
  redis:
    image: redis:latest
    container_name: redis
    hostname: redis
    ports:
      - "6379:6379"
  predixy:
    image: haandol/predixy:latest
    container_name: predixy
    hostname: predixy
    ports:
      - "7617:7617"
    links:
      - redis
    environment:
      PREDIXY_BACKENDS: "redis://redis:6379"
      PREDIXY_LOG_LEVEL: "info"

이 Compose 파일에서는 Redis와 Predixy 두 개의 서비스를 정의합니다. Redis 서비스는 redis:latest 이미지를 사용하여 컨테이너를 생성하며, 호스트의 6379 포트와 컨테이너의 6379 포트를 연결합니다.

 

Predixy 서비스는 predixy/predixy:latest 이미지를 사용하여 컨테이너를 생성하며, 호스트의 7617 포트와 컨테이너의 7617 포트를 연결합니다. 또한, links 옵션을 사용하여 Redis 서비스와 연결합니다. 마지막으로, environment 옵션을 사용하여 Predixy의 환경 변수를 설정합니다.

2. Docker Compose 실행

Docker Compose 파일을 작성한 후에는 docker-compose up 명령을 사용하여 Compose를 실행할 수 있습니다. 이 명령을 실행하면 Redis와 Predixy 서비스가 함께 실행되며, Predixy는 Redis를 백엔드로 사용하여 캐싱을 수행합니다.

docker-compose config
docker-compose up -d
$ docker-compose ps
NAME      IMAGE                    COMMAND                  SERVICE  CREATED        STATUS         PORTS
predixy   haandol/predixy:latest   "/usr/local/bin/pred…"   predixy  8 seconds ago  Up 7 seconds   0.0.0.0:7617->7617/tcp
redis     redis:latest             "docker-entrypoint.s…"   redis    8 seconds ago  Up 8 seconds   0.0.0.0:6379->6379/tcp

redis 버전 정보 확인

docker-compose exec redis sh -c "redis-cli --version"
$ docker-compose exec redis sh -c "redis-cli --version"                                                                           
redis-cli 7.0.9

predixy 버전 정보 확인

docker-compose exec predixy sh -c "predixy -v"
$ docker-compose exec predixy sh -c "predixy -v"
predixy predixy-1.0.4

이제 http://localhost:7617을 방문하여 Predixy 대시보드에 액세스하고 Redis 데이터를 캐싱하는지 확인할 수 있습니다.

레디스 클라이언트에서 테스트

docker run -it --rm --name redis-cli redis:latest sh -c "redis-cli -h localhost -p 7617 --version"
$ docker run -it --rm --name redis-cli redis:latest sh -c "redis-cli -h localhost -p 7617 --version"
redis-cli 7.0.9
  • set
docker run -it --rm --name redis-cli --add-host=redis:host-gateway redis:latest sh -c "redis-cli -h redis -p 6379 set foo bar"
$ docker run -it --rm --name redis-cli --add-host=redis:host-gateway redis:latest sh -c "redis-cli -h redis -p 6379 set foo bar"
OK
  • get
docker run -it --rm --name redis-cli --add-host=redis:host-gateway redis:latest sh -c "redis-cli -h redis -p 6379 get foo"
$ docker run -it --rm --name redis-cli --add-host=redis:host-gateway redis:latest sh -c "redis-cli -h redis -p 6379 get foo"
"bar"

 

728x90
반응형