테스트를 위한 Redis/Redis-stats/Portainer docker-compose 만들기
sudo docker-compose up (동기화, 로그를 실시간 확인할 수 있음)
sudo docker-compose up -d (데몬화)
sudo systemctl enable docker (부팅시 docker 자동 실행)
django의 redis + celery를 테스트와 docker 컨테이너를 관리하기 위해 portainer의 필요성을 느끼게 되어
인터넷 검색을 통해 필요한 부분만 추려 만들게 되었다.
별 다른 내용이 없어 저장소까진 만들지 않았기에 코드를 그대로 올리기로 한다.
준비 사항 :
1. 데이터의 백업, conf 파일과 docker의 socker을 공유하기 위해서는 볼륨이 필요하다
- data, redis 폴더를 만들고 redis/conf 폴더를 추가로 만들어 redis.conf 파일을 넣는다.
- 필요한 폴더 및 파일 : data, redis, redis/conf/redis.conf
* docker 이미지 버전이 어떤 것인가에 따라 파일의 변수가 생략된 것이 있다. 나의 경우 특정 변수가 폐기되어 더이상 사용되지 않아 예전 버전의 redis.conf를 넣어서 에러가 발생핬다.
* 현재 redis 버전 7.0.9, 하단 페이지에서 버전에 맞는 zip 파일을 받아 redis.conf만 복사하자.
https://github.com/redis/redis/releases
* 명확한 이유는 파악하지 못했지만, 구동시 연결이 거부되는 문제점이 계속 발생하였다.
- 해결 방법 : redis.conf를 넣지 않고 아래 코드를 실행하면 이미지로 생성되는 redis.conf를 확인할 수 있다. 이를 사용하자.
코드 설명 :
- 상용 목적이 아니기 때문에 환경설정은 기본을 그대로 사용한다.
- portainer는 원래 두 개의 포트를 사용한다. 현재 여러 컴퓨터의 에이전트를 통합 관리할 필요가 없어 해당 포트 정의는 안한다.
- 에이전트 관리용 : 8000
- 관리자 페이지 접속용 : 9443
- https://localhost:9443 으로 https를 꼭 붙여서 사용해야 한다.
- redis 모니터링 툴인 redis-stats는 http://localhost:63790 로 접속하며 된다.
# 파일 규격 버전
version: "3.1"
# 실행하려는 컨테이너들 정의
services:
# 서비스명
redis:
# 사용할 이미지
image: redis:latest
# 컨테이너명
container_name: redis_test
# 접근 포트 설정(컨테이너 외부:컨테이너 내부)
ports:
- 6379:6379
# 스토리지 마운트(볼륨) 설정
volumes:
- ./redis/data:/data
- ./redis/conf/:/user/local/conf/
# 컨테이너에 docker label을 이용해서 메타데이터 추가
labels:
- "name=redis"
- "mode=standalone"
# 컨테이너 종료시 재시작 여부 설정
restart: unless-stopped
command: redis-server
redis-stats:
image: insready/redis-stat:latest
container_name: redis-stats
ports:
- '63790:63790'
command: [
'--verbose', # 추가 정보 보기
'--server',
'redis:6379',
]
depends_on:
- redis
restart: unless-stopped
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
ports:
- 9443:9443
volumes:
- ./data:/data
- /var/run/docker.sock:/var/run/docker.sock
restart: unless-stopped
트러블 슈팅 :
- redis.conf를 공식 사이트에서 가져와 사용했지만, 테스트시 접속 거부가 계속 발생했다. 로그를 추적해 문제를 해결할 "의지"가 부족하므로..
- 해결 방법 : 빈 공간의 볼륨으로 실행하면 redis/conf/ 폴더에 자동으로 redis.conf 파일이 생성된다. 이것을 이용해 수정하자.
작동 방법 :
sudo docker-compose up (동기화, 실시간 로그를 확인할 수 있는 개발용 명령어)
sudo docker-compose up -d (데몬화)
sudo systemctl enable docker (부팅시 자동 실행 설정)
# 현재 동작중인 redis 컨테이너에 Redis-cli 콘솔로 접속
sudo docker exec -it redis_test redis-cli
결과 화면 :
reference
redis docker-compose :
portainer docker-compose :
https://earthly.dev/blog/portainer-for-dcm/
https://it-svr.com/docker-web-gui-portainer/
댓글