Infra/Docker

Port mapping

토이 개발 스토리 2023. 12. 10. 00:12
docker run redis

컨테이너에서 redis가 실행된다.

 

당연하게도, 로컬 환경에서는 컨테이너에서 실행된 redis에 접속할 수 없다.

 

연결할 수 없다고 나온다.

만약 이 둘을 연결해서 호스트 머신에서 컨테이너에 접속하고 싶을 때 Port Mapping을 사용할 수 있다.

 

Port Mapping을 하려면 컨테이너를 생성할 때 설정을 해줘야 한다.

아래와 같이 Port Mapping을 해주자.

docker run -it -p 4000:6379 redis

 

여기서 6379는 컨테이너 내에서 redis가 실행되는 포트이고, 이를 호스트 포트의 4000과 매핑해 준다는 뜻이다.

호스트 환경에서 아래와 같이 실행한다.

redis-cli -p 4000

 

일반 redis-cli는 접속이 안된다. 그 이유는 현재 호스트의 redis의 기본 포트는 6379이기 때문이다.

우리가 매핑한 4000에 접속하면 아래와 같이 잘 실행되는 것을 볼 수 있다.

 

하지만 일반적으로 개발할 때는 포트를 같은 것으로 맞춘다.

docker run -it -p 6379:6379 redis

이렇게 하면 현재 호스트의 6379 포트와 컨테이너의 6379 포트를 연결해 준다.

실제 개발에서 컨테이너 레디스를 호스트에서 사용하는 것과 비슷하게 활용한다.