컴퓨터 지식 네트워크 - 컴퓨터 하드웨어 - 컨테이너를 만든 후 포트를 수동으로 매핑합니다.

컨테이너를 만든 후 포트를 수동으로 매핑합니다.

[목차]

일반적으로 컨테이너를 만들 때 -p 를 사용하여 여러 포트를 지정하거나 -P 를 사용하여 임의 포트를 지정할 수 있지만, 컨테이너를 만든 후 하나 이상의 포트를 매핑하려고 하지만 docker 에는 현재 지원되는 명령이 없습니다.

먼저, docker 포트 매핑이 어떻게 작동하는지 알아야 합니다.

일반적으로 컨테이너는 외부 네트워크에 액세스할 수 있지만 외부 네트워크는 컨테이너에 액세스할 수 없습니다.

NAT 를 사용하면 컨테이너 외부 네트워크에 대한 모든 접속의 소스 주소가 로컬 시스템의 IP 주소가 됩니다. 이는 snat 에서 iptables 를 사용하여 수행됩니다.

호스트의 NAT 테이블을 확인합니다.

위의 iptables 규칙은 모든 소스 주소를172.17.0.0/16 으로, 대상 주소는 다른 네트워크 세그먼트 (엑스트라넷) 임을 알 수 있습니다. 기존 SNAT 에 비해 위장의 장점은 네트워크 카드에서 동적으로 주소를 얻을 수 있다는 것입니다.

위의 포트 변환은 컨테이너를 만들 때 지정됩니다.

-p 명령을 사용하여 포트를 매핑합니다. 여기서 볼 수 있듯이 호스트와 컨테이너가 매핑된 포트에 외부적으로 액세스하면 iptables 의 NAT 테이블이 대상 포트를 해당 컨테이너의 ip:port 로 변환합니다.

위의 분석을 통해 외부 네트워크가 테이프 컨테이너 내부에 어떻게 액세스되는지 알 수 있습니다.

따라서 DNAT 규칙을 추가하고 호스트의 컨테이너 IP 및 포트에 대한 액세스를 허용해야 합니다.

실험

수신 컨테이너에서 NC 가 있는 포트

그런 다음 위의 두 가지 방화벽 규칙을 추가한 후 호스트의 123 포트에 연결할 수 있는지 다시 테스트합니다.

액세스할 수 있는지 확인합니다.

上篇: Asus 노트북 색상 차이 조정 방법? 下篇: 앰프 결함 표시등이 켜지는 이유는 무엇입니까? 머신 헤드 결함 표시등이 켜지는 이유는 무엇입니까?
관련 내용