Predixy Docker Compose를 구성하는 방법
Predixy는 Redis와 같은 메모리 내 데이터베이스를 캐싱하기 위한 프록시 서버입니다.
Docker Compose로 구성하는 방법은 다음과 같습니다.
1. Docker Compose 파일 생성
먼저 Redis와 함께 Predixy를 사용하는 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에 연결합니다.
또한 링크 옵션을 사용하여 Redis 서비스에 연결합니다.
마지막으로 환경 옵션을 사용하여 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
docker-predixy-predixy-1 haandol/predixy:latest "/usr/local/bin/pred…" predixy 17 seconds ago Up 15 seconds 0.0.0.0:7617->7617/tcp
docker-predixy-redis-1 redis:latest "docker-entrypoint.s…" redis 17 seconds ago Up 16 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
프레딕시 버전 정보 보기
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
Redis 클라이언트에서 테스트됨
- 놓다
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
- 얻다
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"