Redis Image Pull(받아오기)
$docker image pull redis
Docker 내부에 network 생성 및 확인
# network 생성
$docker network create redis-network
# network 확인.
$docker network ls
Docker 내부에 네트워크를 생성하고 확인하는 이유는 컨테이너 간의 통신을 관리하고 격리하기 위함입니다. Docker 네트워크는 여러 컨테이너가 서로 통신할 수 있는 방법을 제공하며, 각각의 네트워크는 고유한 네트워크 공간을 갖습니다. 이를 통해 컨테이너 간의 네트워크 트래픽을 분리하고 보안을 강화할 수 있습니다.
docker run 명령어를 사용하여 Redis 컨테이너를 실행하고, 네트워크와 볼륨을 연결하는 방식
docker run --name myredis \
-p 6379:6379 \
--network redis-network \
-v /Users/my/dockers/redis:/data \
-d redis:latest redis-server \
--appendonly yes
- --name myredis: 컨테이너 이름을 myredis로 설정합니다.
- -p 6379:6379: 호스트의 포트 6379를 컨테이너의 포트 6379에 매핑하여 외부에서 접근할 수 있도록 합니다.
- --network redis-network: redis-network 네트워크에 컨테이너를 연결합니다.
- -v /Users/my/dockers/redis:/data: 호스트의 /Users/my/dockers/redis 디렉토리를 컨테이너의 /data 디렉토리에 마운트하여 데이터 지속성을 유지합니다.
- -d: 컨테이너를 백그라운드에서 실행합니다.
- redis:latest: 최신 Redis 이미지를 사용합니다.
- redis-server --appendonly yes: Redis 서버를 appendonly 옵션으로 실행하여 AOF(Append Only File) 기능을 활성화합니다.
Redis를 실행할 때 -v 옵션을 사용하여 호스트 디렉토리를 컨테이너의 디렉토리에 마운트하면, Redis 서버는 데이터베이스의 스냅샷 파일(dump.rdb)을 해당 호스트 디렉토리에 생성합니다.
dump.rdb 파일은 Redis의 RDB (Redis Database Backup) 스냅샷 파일로, Redis 서버가 자동으로 생성합니다. 이는 Redis의 기본 동작 중 하나로, 데이터베이스를 디스크에 저장하여 데이터 유실을 방지하기 위해 사용됩니다.
Redis 서버에 접속하는 일반적인 방법
1번 방법: 새로운 컨테이너를 통해 네트워크 접속
이 방법은 현재 실행 중인 Redis 서버에 또 하나의 Redis CLI 컨테이너를 네트워크를 통해 접속하는 방법입니다. 네트워크를 통해 다른 컨테이너에 접근할 때 유용합니다.
docker run -it --network redis-network --rm redis:latest redis-cli -h myredis
- -it: 인터랙티브 모드로 터미널에 연결합니다.
- --network redis-network: redis-network 네트워크를 사용합니다.
- --rm: 컨테이너를 종료하면 자동으로 삭제합니다.
- redis:latest: 최신 Redis 이미지를 사용합니다.
- redis-cli -h myredis: Redis CLI를 실행하여 myredis 컨테이너에 접속합니다.
이 명령어는 Redis 서버가 실행 중인 컨테이너(myredis)에 네트워크(redis-network)를 통해 새로운 Redis CLI 컨테이너를 접속시킵니다.
2번 방법: 실행 중인 컨테이너 내부에서 접속
이 방법은 이미 실행 중인 Redis 컨테이너 내부에서 직접 Redis CLI를 실행하여 접속하는 방법입니다. 한글을 정상적으로 출력하기 위해 --raw 옵션을 사용합니다.
docker exec -it myredis redis-cli --raw
- exec -it: 실행 중인 컨테이너 내에서 명령어를 실행하며 터미널에 연결합니다.
- myredis: 실행 중인 Redis 컨테이너 이름입니다.
- redis-cli: Redis CLI를 실행합니다.
- --raw: Redis CLI를 사용할 때 한글을 정상적으로 출력하기 위해 사용하는 옵션입니다.
이 명령어는 myredis 컨테이너 내부에 접속하여 Redis CLI를 실행하고, 한글을 정상적으로 출력하도록 설정합니다.
요약
- 1번 방법은 네트워크를 통해 다른 컨테이너에 접속할 때 유용합니다. 새로운 Redis CLI 컨테이너를 실행하여 네트워크 상의 myredis 컨테이너에 접속합니다.
- 2번 방법은 이미 실행 중인 Redis 컨테이너 내부에서 직접 Redis CLI를 실행합니다. 컨테이너 내부에 접속하여 Redis CLI를 사용할 때 한글을 정상적으로 출력하기 위해 --raw 옵션을 사용합니다.
'redis' 카테고리의 다른 글
[Redis] Redis 란? (1) | 2024.07.02 |
---|---|
[Redis] Redis 세팅 및 명령어 (0) | 2024.06.27 |
[Redis] Google 이메일 인증 ( + Redis ) (0) | 2024.06.27 |