데브옵스 devOps/Docker
[DOCKER] 도커 port / expose 에 대해
dongburiii
2024. 10. 21. 14:01
728x90
반응형
도커 EXPOSE
- Expose는 컨테이너에 오픈할 포트를 의미한다.
- 즉 컨테이너에서만 열려있는 포트로, 동일한 도커 네트워크에 속해있지 않은 호스트나 외부에서 접근할 수 없다.
도커 PORT
- Port는 EXPOSE 된 컨테이너의 포트를 호스트에 열어주는 것을 의미한다.
- 앞의 포트는 호스트의 포트, 뒤의 포트는 컨테이너의 노출된 포트를 의미한다.
- 즉 동일한 도커 네트워크에 속해있지 않더라도, hostIP와 해당 포트를 알고 있다면 컨테이너에 접근이 가능해 진다.
- 컨테이너의 포트를 호스트와 연결시켜주는 것이므로, 컨테이너 포트와 동일할 필요가 없다
- 이 말은 다시 말하면, 특정 포트(3306 / 5504 / 6379등) 만을 사용해야하는 어플리케이션에 대해 다양한 포트 번호를 호스트가 사용할 수 있게 되는 것이다.
- 왜냐하면 특정 포트를 반드시 사용해야 한다는 제약은 컨테이너의 포트에만 적용될 수 있기 때문이다.
- 3306만을 사용해야하는 mysql을 구동할 때, PORTS를 5587:3306으로 설정한다면 외부에서는 5587로 접근하지만 어플리케이션은 3306 포트를 사용하는 효과를 거둘 수 있는 것이다.
728x90
반응형