Docker 컨테이너를 VPC 네트워크에 노출 서버가 있습니다.

하나의 컨테이너로 도커를 실행하는 우분투 서버가 있습니다. 내 vpc에서 서버 IP 주소는 172.31.12.29/20입니다. 견인 브릿지 (docker0 ans lxcbr0)가 있습니다.

내 컨테이너 IP 주소는 172.17.0.2/16입니다.

호스트와 컨테이너는 스스로 핑할 수 있습니다.

IP 주소에 172.31.1.233/20이있는 내 vpc에 다른 서버가 있습니다. 이 서버에서 컨테이너에 닿기를 원하지만 어떻게 해야할지 모르겠습니다.

내 두 서버가 스스로 핑할 수 있습니다.

172.17.0.0/16 대상 요청을 172.31.12.29로 라우팅하도록 내 vpc route 테이블을 구성하려고 시도했지만 작동하지 않습니다.

어떤 아이디어?



답변

컨테이너를 호스팅하는 인스턴스에서 소스 / 대상 IP 확인을 비활성화해야하는 것처럼 들립니다 (VPC 라우팅 테이블에서 id로 해당 인스턴스를 가리키는 고정 경로가 필요함). VPC 네트워크 인프라는 인프라가 각 인스턴스와 관련된 IP 주소에 대해 내부적으로 알고있는 것을 기반으로 이해하지 못하는 IP 주소로 IP 트래픽을 삭제합니다. 이 설정은 적용하는 인스턴스에서 해당 기능을 변경합니다. NAT 인스턴스가있는 경우 해당 인스턴스에 대해이 작업이 이미 완료된 것을 알 수 있습니다. 그렇지 않으면 외부 트래픽을 다른 인스턴스로 /로부터 라우팅 할 수 없습니다.

http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-ModifyInstanceAttribute.html

콘솔의 인스턴스 작업에도 있습니다.


답변

컨테이너 포트를 노출하고 (docker run -p 1234 : 1234) ec2 인스턴스 주소 (10.xyz:1234)에 연결할 수 있습니다

소비자 측의 주소를 하드 코딩하지 않으려면 다음과 같이 앰배서더 패턴을 사용하십시오. https://docs.docker.com/engine/admin/ambassador_pattern_linking/


답변