본문 바로가기
DevOps

[Docker] Redis 설치

by WhoamixZerOne 2023. 6. 28.

출처 : https://en.wikipedia.org/wiki/Redis

Docker 설치는 아래 글을 참조
Docker 설치 및 명령어 정리

해당 내용은 Ubuntu 22.04.2 LTS 버전에서 진행

✔ Docker Redis Image 다운로드

# redis 최신 버전 다운(아래의 2개가 동일함)
$ docker pull redis
$ docker pull redis:latest

# redis 지정 버전 다운
$ docker pull redis:7.0.11

Docker Image 정상적으로 다운로드되었는지 아래의 명령어로 확인할 수 있다.

$ docker images

docker 명령어를 사용할 때 관리자 권한인 sudo를 사용하지 않게 권한을 주려고 하면 맨 위의 Docker 설치 및 명령어 정리 글을 참조하면 된다.

✔ Docker Redis Container 생성 및 실행

-d (Detached) 백그라운드로 실행(데몬 demon으로 실행) 옵션이다.

-p (Port) 포트에 해당한다.(redis의 default port는 6379)

--requirepass (password) redis 암호 설정

# docker run -d --name "생성할 컨테이명 작성" -p 6379:6379 "이미지명 or 이미지ID"
$ docker run -d --name redis7-container -p 6379:6379 redis:7.0.11
$ docker run -d --name redis7-container -p 6379:6379 redis:7.0.11 --requirepass "password"

Docker Redis Container가 정상적으로 생성되고 실행됐는지 아래의 명령어로 확인할 수 있다.

$ docker ps

만약 "docker ps" 명령어를 사용했는데 목록에 보이지 않는다면 "docker ps -a" 명령어를 사용해서 목록에 있다면 에러 혹은 다른 이유로 컨테이너가 실행이 안된 것이다.

 

"docker ps" 명령어는 실행 중인 목록이 출력되고, "docker ps -a" -a 옵션이 붙으면 정지된 컨테이너까지 모두 출력이 된다.

✔ Docker Redis 접속(redis-cli)

-i (Interactive), -t (Pseudo-tty) 옵션 사용하면 실행된 Bash Shell에 입력 및 출력

"redis-cli"로 하면 바로 redis 접속

-a (password) 설정한 암호 입력

# docker exec -it "컨테이너명" /bin/bash
$ docker exec -it redis7-container /bin/bash
$ docker exec -it redis7-container redis-cli -a "password"

Bash shell에서 redis 명령어를 사용해서 redis를 사용하면 된다.

✔ Docker Redis 자동 실행(서비스 등록)

컴퓨터를 켜고 끌 때마다 이미지의 앱 컨테이너가 종료돼서 다시 시작을 해야 하는 상황이라면 서비스에 등록하면

컴퓨터가 재시작할 때마다 자동으로 실행되게 할 수 있다.

 

서비스에 등록을 하기 위해서는 일단 아래와 같다.

 

/etc/systemd/system/redis.service 파일을 생성. 아래의 명령어를 실행한다.

$ sudo vi /etc/systemd/system/docker-redis.service

vi 편집기로 redis.service 파일이 열리고 아래의 서비스 내용을 입력한다.

[Unit]
Description=Docker redis version 7 container
After=docker.service

[Service]
RemainAfterExit=yes
ExecStart=/usr/bin/docker start redis7-container
ExecStop=/usr/bin/docker stop redis7-container

[Install]
WantedBy=multi-user.target

마지막으로 systemctl에 등록해서 활성화

$ sudo systemctl enable docker-redis.service

재부팅을 해서 확인을 해본다.

✔ Docker Container option restart(자동 실행)

서비스 등록 말고 --restart=always 옵션으로도 할 수 있다.

restart 옵션들은 다음과 같다.

  • no: 기본 옵션(재시작하지 않는다)
  • always: 컨테이너가 멈추면 즉각 재시작하고 수동으로 종료하면 데몬이 재시작할 때 다시 켜진다
  • on-failure: 컨테이너에 에러가 발생하면 재시작하고 데몬 재시작 시에는 자동으로 실행되지 않는다
  • unless-stopped: always와 비슷하지만 수동으로 컨테이너를 종료하면 재시작하지 않는다
docker update --restart=always redis7-container
docker update --restart=unless-stopped redis7-container

 

 

🔗 Reference

'DevOps' 카테고리의 다른 글

Dockerfile & docker-compose 작성  (0) 2022.07.31
Docker 설치 및 명령어 정리  (0) 2022.07.24

댓글