기본 IP 주소가 아닌 고유한 IP 주소를 갖도록 Docker 컨테이너를 구성하려면 어떻게 해야 합니까?

기본 IP 주소가 아닌 고유한 IP 주소를 갖도록 Docker 컨테이너를 구성하려면 어떻게 해야 합니까?

기본 IP 주소가 아닌 고유한 IP 주소를 갖도록 Docker 컨테이너를 구성하려면 어떻게 해야 합니까?

Docker 컨테이너는 Apache 또는 일부 웹 서비스를 실행합니다. 이러한 Docker 컨테이너는 물리적 네트워크 카드와 호스트를 공유합니다. 이러한 컨테이너는 포트 80을 통해 호출될 때 고유한 IP 주소로 식별 가능해야 합니다. 워크스테이션은 HTTP를 사용하여 파일을 다운로드합니다.

Docker 호스트에 가상 IP 주소를 생성하려고 합니다. 그러나 이로 인해 서버에 대한 네트워크 연결이 중단되었습니다.

Docker 오버레이를 설치하려고 했지만 워크스테이션이 컨테이너에 대한 HTTP 요청을 사용하도록 하는 데 도움이 되지 않을 것 같습니다. Docker 오버레이는 컨테이너 간 연결에 적합한 것 같습니다.

인터록 사용을 고려했지만 Swarm을 사용하고 싶지 않습니다.

답변1

여기서 가장 간단한 해결책은 호스트에 추가 주소를 추가한 다음 컨테이너를 각 주소에 바인딩하는 것입니다. 예를 들어 호스트가 192.168.1.20이라고 가정하면 다음과 같이 추가 주소를 추가할 수 있습니다.

ip addr add 192.168.1.21/32 dev eth0
ip addr add 192.168.1.22/32 dev eth0
ip addr add 192.168.1.23/32 dev eth0

그런 다음 컨테이너를 시작할 때 다음과 같이 컨테이너의 포트 80을 특정 호스트 주소의 포트 80에 게시합니다.

docker run -p 192.168.1.21:80:80 mywebimage

(이것은 컨테이너의 IP 주소를 변경하지 않습니다. 지정된 IP 주소와 포트와 컨테이너의 내부 IP 주소 및 포트 사이의 매핑을 생성합니다.)

여기에 표시된 주소 구성은아니요지속적으로 호스트를 재부팅하면 주소가 손실됩니다. 이러한 주소가 구성되는 정확한 방법은 배포판마다 다릅니다. 자세한 내용은 배포 설명서를 참조하세요.

관련 정보