나는 도커 컨테이너가 로컬 액세스만 가능하고 인터넷 액세스는 불가능하도록 제한하는 간단한 방법을 찾고 있습니다.
이 작업을 수행하기 위해 IPtables를 사용해 보았더니 다음과 같이 작동했습니다.
iptables -I FORWARD -i docker0 -j DROP
그러나 docker 서비스를 다시 시작하면 로컬 호스트는 더 이상 컨테이너에 액세스할 수 없습니다.
답변1
"로컬 액세스"란 컨테이너가 서로 및 도커 호스트와 통신할 수 있지만 도커 호스트 외부의 네트워크에는 액세스할 수 없도록 하려는 것을 의미한다고 가정합니다.
몇 가지 옵션이 있습니다.
1.
iptables를 사용하여 외부 네트워크 인터페이스와의 DOCKER 체인에 있는 모든 패킷을 삭제합니다.
iptables -I DOCKER -i eno1 -j DROP
( eno1
상황은 다를 수 있습니다. 이는 내 Docker 호스트의 네트워크 인터페이스 이름입니다.)
2.
닫다IP 포워딩Docker 호스트에서.
echo 0 > /proc/sys/net/ipv4/ip_forward
참고: 이는 동일한 방식으로 모든 가상 머신을 제한하지만 보안에 더 민감한 사람들을 위한 일반적이고 안전한 접근 방식입니다.
원천:
바라보다https://docs.docker.com/v1.5/articles/networking/#the-world "컨테이너와 더 넓은 세상의 소통" 자세히 알아보세요.