티스토리 뷰

개발/docker

Docker 로 Redis 설치하기

드림NT 2019. 11. 29. 23:04
반응형

Redis 는 "키-값" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈소스 기반의 비관계형 데이터베이스 관리 시스템이다. 관심이 생겨 한번 설치를 하려 했는데, docker 로 설치해봤다.(해당 글은 docker version 19.03.5 에서 실행됨)

설치는 그냥 alpine 버전으로 설치했다. 다른 태그를 사용하고 싶다면 https://hub.docker.com/_/redis 참고.

> docker pull redis:alpine

아래같이 image 가 내려온걸 볼수 있다. 30mb 가 되질 않는다.

 

우선 이미지는 설치되어서 바로 서버를 구동(run) 하면 되긴하지만, redis-cli 도 같이 구동해서 통신을 해야 하기때문에, 2개의 컨테이너를 실행할 것이며, 그 2개간 연결을 위해 docker network 구성을 먼저 해야 한다. 

redis-net 이라는 docker network 를 생성한다.

> docker network create redis-net

생성하고 나서 확인.

 

redis 를 실행하는데, 앞서 생성한 network 정보를 넣어 수행한다. 

> docker run --name my-redis \
             -p 6379:6379 \
             --network redis-net \
             -v my/folder:/data \
             -d redis:alpine redis-server --appendonly yes
--name : 컨테이너 이름 지정,
-v : host 와 연결할 폴더 지정
-p : host 에 노출할 포트 지정

 

수행하고 나면, 아래와 같이 컨테이너가 실행된 걸 볼 수 있다.

반응형

마지막으로, redis-cli 로 해당 redis server 에 접속해보자. --rm : 실행할때, 컨테이너 id 가 존재하면 삭제후 run.

> docker run -it --network redis-net --rm redis:alpine redis-cli -h my-redis

 

--rm : 실행할때, 컨테이너 id 가 존재하면 삭제후 run.

 

docker network 를 설정했기때문에 redis-cli 뒤에 my-redis 라는 docker 컨테이너 이름을 사용하여 redis server 에 접속할 수 있게 된다.

 

이렇게만 접속할 수 있는게 아니라, 다른방법도 가능하다. 아까 만든 redis-net 네트워크의 정보를 조회하면, my-redis 라고 이름을 지정한 redis server 의 ip 주소는 172.18.0.2 이다.

> docker network inspect redis-net
[
    {
        "Name": "redis-net",
        "Id": "50800cc1d4fe07e8e8d7a6b7e39841872bf811b3ac48f97365c0818945cd4d4d",
        "Created": "2019-11-27T13:13:47.44669151Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "dbf63b80c5ee3cf9cfcafb7cca5d5cf433798ac59ab87043eae4139c867fed5b": {
                "Name": "my-redis",
                "EndpointID": "6c3bb2951650785f31b17a08b5cc3b3c47574a66d4df00af4f84376ffda429d5",
                "MacAddress": "02:42:ac:12:00:02",
                "IPv4Address": "172.18.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]

 

 

바로 redis-cli 를 run 하는 게 아니라, redis:alpine 이미지를 ash 쉘로 실행하여 접속한다. 물론 redis-net 을 지정해야 한다. 

> docker run -it --network redis-net --rm redis:alpine ash

 

방법이 컨테이너 이름을 사용하는거하고, ip 를 직접입력하는 방식 둘다 된다. 참고만 하자. 이름으로 대부분 하겠지..

 

redis-server 구동할때, -p 옵션으로 host 에 포트를 노출했기때문에, redis 가 설치된 로컬 pc 에서도 접속이 가능하다.

 

(docker) oracle xe 18c 설치 및 sqlplus 접속하기

docker 로 oracle db 설치해본다. 정확히는 oracle xe 18c 를 mac 에서 설치한 기록을 남긴다. 오라클에서도 docker image 관련 github 사이트를 제공하고 있다. https://github.com/oracle/docker-images/tree/ma..

emflant.tistory.com

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함