[리눅스] Docker로 redis설치하기

0
post-thumbnail

redis를 공부하기 위해서 집에서 사용하고 있는 개발용 리눅스(OS : Ubuntu 20.0.4 LTS) 서버에 docker를 이용하여 redis를 설치한 과정을 정리한 포스팅입니다.

Docker image 다운로드

참고) 컴퓨터에 docker가 설치되어 있지 않다면 docker를 먼저 설치해야 합니다. 제가 사용하고 있는 개발용 리눅스 서버에는 docker가 이미 설치되어 있습니다.

먼저 docker image를 다운로드 받아야 합니다. 아래와 같이 명령을 입력하면 최신 버전의 redis로 만들어진 docker 이미지가 다운로드 됩니다.

$ docker pull redis

docker 이미지가 정상적으로 다운로드 되었는지 아래와 같이 명령을 입력하여 확인할 수 있습니다.

$ sudo docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
redis        latest    0ec8ab59a35f   10 days ago   117MB

Docker container 생성

Docker image가 정상적으로 다운로드 되었으면, 아래와 같이 명령을 입력해서 docker container를 생성해야 합니다.

$ sudo docker run -p 6379:6379 --name docker_redis redis

redis에서 사용하는 기본 포트가 6379이기 때문에 리눅스 서버의 6379포트로 들어오는 요청을 Docker container의 6379포트로 포워딩할 수 있도록 -p옵션을 사용하여 포트 포워딩을 지정했고, --name옵션으로 docker_redis라고 container이름도 지정했습니다.

docker run 명령어를 사용하게 되면 docker container가 생성되면서 실행이 됩니다. 터미널에서 CTRL+C키를 입력하여 실행중인 docker container를 종료시킵니다.

Docker container 상태 확인

아래와 같이 docker ps -a 명령을 입력하여 docker container의 상태를 확인할 수 있습니다.
위에서 docker container를 종료시켰기 때문에 현재 상태는 Exited로 표기됩니다.

$ sudo docker ps -a
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS                     PORTS     NAMES
bc76e4b4bf6a   redis     "docker-entrypoint.s…"   6 minutes ago   Exited (0) 6 minutes ago             docker_redis

Docker container 실행

docker container는 docker start [container_name]으로 다시 실행시킬 수 있습니다. 반대로 종료를 원하는 경우에는 docker stop [container_name] 명령을 사용하면 됩니다.

아래와 같이 입력하여 docker_redis container를 실행합니다.

sudo docker start docker_redis
docker_redis

그리고 docker container의 상태를 다시 확인해보면 이번에는 docker container가 실행중인 것을 알 수 있습니다.

$ sudo docker ps -a
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS         PORTS                                       NAMES
bc76e4b4bf6a   redis     "docker-entrypoint.s…"   10 minutes ago   Up 2 minutes   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp   docker_redis

redis 접속

이제 docker container 내부에 접속해서 redis-cli를 실행해볼 수 있습니다.

$ sudo docker exec -it docker_redis /bin/bash

root@bc76e4b4bf6a:/data# redis-cli

서비스 등록

참고) redis docker container의 실행을 서비스로 만들어서 등록해놓으면, 매번 리눅스 서버를 재시작할 때마다 docker container가 자동으로 실행되기 때문에 편리합니다.

그래서 /etc/systemd/system/redis.service 파일을 생성하고, redis docker container의 실행을 위한 서비스를 아래와 같이 정의했습니다.

[Unit]
Description=Service to run docker container for redis

[Service]
Type=simple
ExecStart=sudo docker start docker_redis
Restart=on-failure

[Install]
WantedBy=multi-user.target

그리고 나서 다음의 명령을 순서대로 실행하면 redis docker container를 위한 서비스를 등록할 수 있습니다.

systemctl daemon-reload
systemctl enable redis.service
systemctl start redis.service
profile
공부하는 개발자가 되자!!!

0개의 댓글