문제 설명:
Docker를 시작하고 포트 매핑을 수행한 후 docker는 iptables에 DNAT 규칙을 추가하고 해당 포트의 수신 패킷을 IP로 변환하여 전달하며 docker 도메인의 모든 패킷에 규칙을 추가합니다. .ip를 변환합니다.
그러나 Centos7에서는 docker가 외부 네트워크에 정상적으로 접근할 수 있으나 eth1에서 수신하여 전달한 후 외부 네트워크의 요청을 docker0으로 전달할 수 없거나, 보낼 때 (oui Unknown) 상황이 발생합니다.
해결 방법은 다음과 같습니다.
docker를 시작한 후 iptables를 다시 시작하세요
service iptables restart
docker에서 추가한 모든 규칙을 지운 다음 규칙을 추가하세요
iptables -t nat -A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
docker의 모든 패키지 172.17.0.0/16의 IP를 로컬로 교체하세요 도커가 외부 네트워크에 액세스하는 목적을 달성하기 위해 ip 및 send 를 사용합니다.
관련 튜토리얼 권장 사항: docker 튜토리얼
위 내용은 외부에서 Docker에 접근할 수 없으면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!