관리 메뉴

가끔 보자, 하늘.

docker로 실행시 redis db 파일을 host에서 바로 볼 수 있게.. 본문

개발 이야기/인프라 구축 및 운영

docker로 실행시 redis db 파일을 host에서 바로 볼 수 있게..

가온아 2015. 1. 29. 12:02

최종 확인!! 아래와  같이 하면됨.


실행은 아래와 같이 한다.

 sudo docker run -d \

 --name redis \

 -p 6379:6379 \

 -v /data_redis:/data:rw \                           => 데이타를 이곳으로 넣을 거야

 -v /data_redis/redis.conf:/etc/redis/redis.conf \ => conf 파일은 로컬에 있는 파일로 연동

 redis:2.8.19 redis-server /etc/redis/redis.conf    => 실행할 때 내가 지정한 conf로 실행


 그리고 redis.conf는 기본 정보에서.. 

log 옵션을 찾아 /data 로 수정하면 됨.


이상!!



=======================================================

== 아래는 이전에 잘 안되었던 경험. ==

redis-server를 실행할 때 conf 파일을 지정하지 않은 경우,


rdb 파일이 생성되는 곳은 redis-server를 실행한 경로에 생성된다. 


그래서 .. redis.conf안에 dir 옵션에 경로를 지정해서 실행하는 것을 추천한다.


docker에서 redis를 실행할 때... CMD나 ENTRYPOINT에 옵션으로 /etc/redis/redis.conf를 지정해도 되며, 가동 후 수정해서 재시작해도 됨.


docker로 만들 때는 아래와 같이 dockerfile을 만들어야 합니다.


CMD ["redis-server","/etc/redis/redis.conf"]

  (* entrypoint도 마찬가지.. )


이렇게 하면 서버 실행할 때 redis.conf 파일 적용해서 실행됨. 실행될 줄 알았는데 만들어지긴 하지만 실행은 안됨.


내가 어떤걸 잘못한건진 잘 모르겠지만.. ㅠ_ㅜ


일단 run 할 때 커멘드로 입력해 보았다. 

   X  접근 권한 문제로 conf 파일 리딩 불가 에러 발생.


그냥 redis-server만 실행. docker logs redis 로 보니 역시 config 파일 없이 실행되었음을 경고하는 문구 있음.


redis-cli 실행해서 CONFIG SET dir = /data 실행하니 적용된 듯. 어??!!!


run 할 때 -v 옵션으로 /data_redis:/data로 지정한 상태라.. 


redis-cli 에서 save 후 나와서 /data_redis에 보니 dump.rdb 보이네.


헐.. 된장. 


음.. 왜 cmd 옵션이 처음부터 잘 적용이 안되는 거지 -- 


이거 안되면 이미지 교체할 때 rdb 파일 공유 하려면 손 많이 타는데.. T-T


해외 커뮤니티 보니 다들 되는듯 하던데.. 


docker도 최신 버전으로 업데이트 했는데 --a 


어렵다. 자동으로 되야 사람 손을 안 타도 될텐데 -- 고칫덩이네... 쩝.!!










반응형