포트포워딩(Port Forwarding)
도커는 기본적으로 격리된 네트워크 환경에서 실행되므로, 외부에서 컨테이너의 서비스에 접근하려면 포트포워딩이 필요하다.
호스트의 포트를 컨테이너의 포트로 연결함으로써 외부 접근이 가능하게 된다.문법
docker run -p <호스트포트>:<컨테이너포트> 이미지명예시:
docker run -p 8080:80 nginx위 명령어는 호스트의 8080번 포트를 컨테이너의 80번 포트와 연결한다.
사용자가 웹 브라우저에서localhost:8080으로 접속하면, 도커 컨테이너 내부의 Nginx 웹 서버로 요청이 전달된다.
ex)
포트포워딩 시 주의할 점
- 하나의 포트는 호스트에서 한 번만 사용할 수 있으므로, 동일한 포트를 여러 컨테이너에 중복 지정할 수 없다.
- 보안상의 이유로 외부 노출이 필요 없는 포트는 포워딩하지 않는 것이 좋다.
docker-compose를 사용하는 경우,ports항목에서 포워딩을 정의할 수 있다.ports: - "8080:80"이 설정은
docker run -p 8080:80과 동일한 의미이다.