개발자의 오르막
[Docker - Redis #01] docker-compose 로 Redis 환경 구축해보기 본문
Target
- Docker 명령어로 Redis 를 설치 및 구동해본다.
- Docker-Compose 로 Redis 환경을 구축해본다.
- Docker 컨테이너에 접속해 Redis-Client 를 실행시켜본다.
- Docker-Compose 로 Redis-Sentinel 환경을 구축해본다. ( 2편예정 )
1. Docker 로 Redis 설치 및 구동하기
도커로 특정 프로그램을 설치한다고 할 때 다음과 같은 절차를 공통적으로 진행하게 됩니다.
- 원격 레파지토리에 있는 Docker Image 를 다운받기
- Docker 실행 명령어에 적용할 옵션을 붙여서 실행하기
일종의 패키지, 또는 라이브러리라 볼 수 있으며, 저희는 이미 구성된 쉘 스크립트 파일을 Docker run 명령어를 통해 자동으로 실행되는 효과를 누릴 수 있는 것입니다.
이는 반대로, 우리가 애플리케이션의 도커 이미지를 만들고, 원격 레파지토리에 저장하여 URL 를 등록하면, 다른 사용자가 우리처럼 도커 명령어 만으로 사용할 수 있다는 것을 의미합니다.
Docker Image 다운로드
docker pull redis:alpine
첫번째 절차와 같이 먼저 Docker Image 를 Pull 커멘드를 통해 다운로드 받습니다. 이때 : 뒤에 붙는 alpine 은 태그를 의미하며 도커에서는 특정 버전을 분류할 때 많이 사용합니다.
여기서 alpine 은 ubuntu 보다 훨씬 경량화된 운영체제로 최소한의 용령에서 도커 이미지가 동작할 수 있게 해줍니다.
도커 이미지가 잘 받아졌는지는 아래의 명령어를 통해 확인할 수 있습니다.
docker images
Docker 실행
docker run --name redis_boot -d -p 6379:6379 redis:alpine
그럼 두번째 절차인 도커 이미지를 실행해보겠습니다.
먼저 실행하기 앞서 위의 옵션들을 간략하게 설명할게요.
- --name : container 명을 지정합니다.
- -d , --detach : 백그라운드로 실행합니다.
- -p : host 의 port 와 container port 설정을 해줍니다.
위의 명령어를 실행시키면 백그라운드 (데몬) 으로 실행했기 때문에 잘 동작했는지 모를 수도 있습니다.
# 현재 동작중인 도커 컨테이너 표시
docker ps
# 모든 도커 컨테이너 표시
docker ps -a
위의 명령어를 실행시키면 아래 이미지처럼 도커의 현황을 파악할 수 있습니다.
실습을 맞췄다면 도커를 중지 및 삭제해주세요.
# 컨테이너 중지
docker stop redis_boot
# 컨테이너 삭제
docker rm redis_boot
2. Docker-Compose 로 Redis 환경 구성하기
그러면 docker-compose 는 어떤 것일까요?
자세한 얘기는 Docker 를 집중적으로 다루는 포스팅에서 안내할 예정입니다만, 쉽게 말해 여러 도커 컨테이너를 한번에 실행시켜주는 스크립트 파일이라고도 할 수 있겠네요.
docker-compose 에서는 yml 이라는 파일 양식으로 어떤 이미지와 어떻게 실행시킬지에 대한 옵션을 미리 적어주면, 우리는 매번 Docker run 에 많은 옵션을 붙여서 일일이 커멘드를 치지 않아도 괜찮습니다!
Yml 파일 작성
그럼 우선 docker-compose.yml 을 작성해볼까요?
우선 위치는 컴퓨터의 어떤 곳이든 상관 없습니다. 저는 홈 디렉터리에서 dev-tool 이라는 폴더를 생성해서 그 위치에다가 yml 을 만들었어요.
- redis_server.yml
version: '3.7'
services:
redis:
image: redis:alpine
command: redis-server --port 6379
container_name: redis_boot
hostname: redis_boot
labels:
- "name=redis"
- "mode=standalone"
ports:
- 6379:6379
우선 위의 yml 내용을 보시면 저희가 아까 실행했던 Docker run 명령어의 옵션들이 녹아 있는 것을 볼 수 있습니다.
- image : docker pull redis:alpine
- ports : -p 6379:6379
- labels 의 name : --name redis_boot
그리고 docker 를 실행했을 때처럼 docker-compose.yml 을 실행시키는 명령어입니다.
docker-compose -f ./redis_server.yml up -d
- docker-compose 기본 명령어는 docker-compose up 입니다.
- -d 옵션은 백그라운드를 의미합니다.
- -f 는 yml 파일을 지정해주는 것을 의미합니다.
Docker 로 띄웠을 때처럼 동일하게 뜨는 것을 확인 할 수 있습니다.
3. Docker 컨테이너에 접속하여 Redis-Cli 사용해보기
docker ps , docker ps -a 는 단순하게 컨테이너의 동작 상태만 알 수 있습니다. 그러면 실제로 Redis 가 동작하는지 redis-cli 를 통해 알아보겠습니다.
docker exec -it redis_boot redis-cli
exec 커멘드를 사용해 docker container 내부에 명령어를 실행해볼 수 있습니다.
- -it : 명령어 한번 실행이 아닌, 계속해서 커멘드를 실행시킬 수 있도록 해주는 옵션입니다.
- redis-cli : 컨테이너 내부에서 실행시킬 명령어를 마지막 위치에 붙여줍니다.
- ubuntu 인 경우 : /bin/bash
- alpine 인 경우 : /bin/sh
위의 명령어를 실행시키면 Redis-cli 로 접속하게 되어 아래와 같이 Redis를 실행할 수 있게됩니다.
Docker-Compose 종료
Docker Compose 를 종료시키기 위해서는 아래의 명령어를 실행시킬 수 있습니다.
docker-compose -f ./redis_server.yml down
Reference
'Docker' 카테고리의 다른 글
awk 명령어로 Docker 스크립트 파일 생성하기 (0) | 2022.12.31 |
---|