[Tip] Docker Redis 시작하기

Binceline 2018. 10. 16. 14:34

설치

sudo apt-get install docker.io


redis 이미지 다운

docker pull redis


docker로 실행

docker run redis

이러면 실행되긴 한다.

하지만 더 자세한 설정을 해 줄 필요가 있다.

--rm : 실행 정지되면 자동으로 컨테이너를 지워 줌

-d : 백그라운드에서 데몬으로 실행됨

-p [외부포트 : 내부포트] : docker 컨테이너의 외부/내부포트 지정 => ex) -p 8080:6379

-v [외부 디렉토리 : 내부 디렉토리] : 실제 OS 폴더와 해당 컨테이너 내부의 폴더를 연결시켜 줌. 보통 컨테이너가 종료되면 해당 컨테이너에 저장되었던 데이터들이 모두 날아가는데, 이를 방지하기 위함이다. 


Dockerfile (공식 문서, 명령어 : 참고 블로그)

- 이미지에 설정파일 같은 걸 저장해 둘 수 있고, 해당 이미지가 컨테이너로 등록되어 실행될 때 수행할 명령어같은 것들을 지정할 수 있다.

- Dockerfile이라는 이름으로 만들어야 한다.

- Copy명령어같은 것들은 현재 디렉토리 내부만 참조가 가능하다


1. 폴더 생성 및 redis.conf파일 생성

2. 해당 폴더에 Dockerfile 만들고 다음과 같이 작성

FROM redis


COPY redis.conf /usr/local/etc/redis/redis.conf


VOLUME /data


CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]

- 빌드하면 redis.conf파일을 이미지에 복사

- 컨테이너 내부의 /data폴더와 외부 폴더 연결시켜 줌. 외부 폴더는 docker 실행 시 파라미터로 설정 가능

- 컨테이너가 실행되면 내부적으로 redis-server /usr/local/etc/redis/redis.conf 명령 실행하도록 함.


3. Dockerfile 있는 폴더에 data폴더 생성

- 컨테이너 내부의 data폴더와 연결해서 데이터를 현재 OS에 저장하기 위함


4. 빌드

- docker build [options] path | url

docker build -t bin-redis .

*잘 안보이겠지만 저기 끝에 . 중요하다.  현재 경로.


이렇게 bin-redis라는 이미지를 만들었다.

이미지에는 Dockerfile로 설정했던 정보들이 저장되어 있다.


이제 실행할 때 -v 옵션으로 저장소를 연결해 주면 된다.

docker run --rm -d -p 6379:6379 --name binredis -v /home/hsb/mydocker/redis/data:/data bin-redis


이제 redis-cli를 이용해 접속해서 테스트해 보자

잘 접속된다.


외부 스토리지를 연결했기 때문에 docker를 중지하고 다시 실행해도 기존 데이터가 사라지지 않는다.


반응형