본 포스트는 공부를 위해 아래 강의를 수강 후 내용을 재구성 및 복기하는 과정에서 작성하였습니다.
강의의 내용과 이해 내용이 상이할 수 있으며 정확한 정보는 강의 및 공식 홈페이지를 참조하시길 바랍니다.
목적
1. 도커 네트워크 격리에 대해 파악한다.
2. exec를 통해 해결하는 방법을 확인한다.
과정
docker를 이용해 redis를 설치한다.
docker run redis
위와 같은 방법으로 아주 쉽게 Redis가 설치된다.
그럼 아주 쉽게 Redis Client에서 Redis server로 접속을 시도해보자
도커로 레디스를 띄우면 생각같아서는 바로 사용할 수 있을 것 같지만 그렇지가 않다.
왜 접속이 되지 않을까??
그 이유는 컨테이너가 되면서 생긴 네트워크 격리 때문이다.
본 글에서는 해당 문제를 가장 쉬운 가장 쓸모없는 방법으로 해결한다.
해결책
Container 외부에서 레디스 서버에 접속할 수 없다면 클라이언트를 내부로 넣어서 컨테이너 안에서 접속하자
redis exec -it <containerID or NAME> redis-cli
컨테이너 내부에서 redis-cli를 실행한다.
-it 플래그는 -i 플래그와 -t 플래그가 합쳐진 것이다.
쉽게 생각하면 터미널 형태로 실행을 한다고 보면 된다.
잘 붙는다.
set/get도 정상적으로 잘 수행한다.
본 글에서 설명한 docker exec를 이용한 해결방법은 개발/테스트 단계에서는 유용할 수 있으나 실제 운용에서는 사용하기 번거롭다.
향후 포스트에서는 `expose port` 및 `docker network` 등 더 유용한 개념을 다루도록 한다.
참조