인프런 커뮤니티 질문&답변
컨테이너의 IP
작성
·
18
0
각 컨테이너마다 고유의 IP 주소를 가지고 있잖아요.
docker run -d -p 4000:80 nginx근데 이 명령어에는 컨테이너의 IP 정보가 없는데, 어떻게 매핑이 되나요? 컨테이너가 여러 개이고, 모두 동일한 포트를 쓰면 구분이 안가잖아요.
호스트 IP: localhost
호스트 포트: 4000
컨테이너 IP: ???
컨테이너 포트: 80
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 매콤한각설탕님.
Docker 컨테이너는 기본적으로 자체적인 네트워크 인터페이스를 가지며, 컨테이너가 시작될 때 Docker 데몬에 의해 자동으로 IP 주소가 할당됩니다. 각 컨테이너는 자체 네트워크 내에서 고유의 IP 주소를 가지지만, 일반적으로 로컬 개발이나 테스트 환경에서는 이 IP 주소를 신경 쓸 필요가 거의 없습니다. 이유는 다음과 같습니다:
포트 매핑:
docker run -d -p 4000:80 nginx명령어에서-p 4000:80은 호스트의 포트 4000을 컨테이너의 포트 80으로 매핑하는 의미입니다. 이 방식 덕분에 포트 4000을 통해 외부에서 컨테이너의 포트 80에 접근할 수 있습니다. 즉, 여러 컨테이너가 동일한 포트를 사용하더라도, 호스트의 서로 다른 외부 포트를 통해 접근할 수 있으므로 구분이 가능합니다.네트워크 격리: Docker는 기본적으로 각 컨테이너를 격리된 네트워크에서 실행되도록 합니다. 이를 통해 같은 호스트의 포트 번호가 다른 컨테이너와 겹치는 일이 없도록 고유한 포트 매핑을 허용합니다.
컨테이너 IP 주소의 자동 할당: 컨테이너가 시작되면, Docker는 브리지 네트워크를 통해 자동으로 IP 주소를 할당합니다. 이는 내부 네트워크에서의 통신을 지원하지만 외부에서의 접근은 포트 매핑을 통해서만 가능합니다.
관련하여 더 자세한 네트워크 및 포트 매핑 동작 원리에 대한 질문이 있다면, 아래 링크를 참고해 보세요:
- Docker에서 포트 매핑과 컨테이너 네트워크 이해하기
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.




