티스토리 뷰
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 에서도 접속이 가능하다.
- Total
- Today
- Yesterday
- Spring
- ubuntu
- Oracle
- eclipse
- 자급제폰
- 이클립스
- ggplot2
- MyBatis
- docker
- 도넛차트
- MySQL
- 아이맥
- 알뜰요금제
- ggplot
- 셀프개통
- 맥북
- SVN
- R
- ktm모바일
- javascript
- 마인크래프트
- java
- 막대그래프
- ipTIME
- Google Chart Tools
- github
- python
- MongoDB
- vagrant
- heroku
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |