docker PXE 서버가 실패했습니다. 이미 루팅된 경우에도 루트가 필요한 iptables를 초기화할 수 없습니다.

docker PXE 서버가 실패했습니다. 이미 루팅된 경우에도 루트가 필요한 iptables를 초기화할 수 없습니다.

다중 노드 미니 클러스터의 제어 노드에 PXE 부팅 서버를 설정한 다음 각 노드를 docker swarm에 연결하려고 합니다. 이 웹사이트(https://jpetazzo.github.io/2013/12/07/pxe-netboot-docker/), 명령을 root 로 실행 docker run jpetazzo/pxe하지만 docker 컨테이너에서는 루트를 사용하고 있음에도 불구하고 루트를 사용하지 않는다고 알려줍니다.

root@debian:/home/anthony# docker run jpetazzo/pxe
Setting up iptables...
iptables v1.4.21: can't initialize iptables table `nat': Permission denied (you must be root)
Perhaps iptables or your kernel needs to be upgraded.

이 문제를 어떻게 해결해야 합니까? PXE 부팅 서버를 설정하는 더 좋고 쉬운 방법이 있습니까?

편집: 저는 최신 버전의 Debian과 Docker를 사용하고 있습니다.

답변1

~에서읽어보기.md파일을 실행해야 합니다.

  • PXECID=$(docker run --cap-add NET_ADMIN -d pxe)를 사용하여 컨테이너를 실행합니다.
  • ./pipework br0 $PXECID 192.168.242.1/24를 사용하여 추가 네트워크 인터페이스를 제공하세요.
  • 컴퓨터에 연결된 네트워크 인터페이스를 동일한 브리지에 배치합니다(예: brctl addif br0 eth0)(있는 경우 eth0 IP 주소를 br0으로 이동하는 것을 잊지 마십시오).

즉, Docker 컨테이너에는 호스트 시스템에 NET_ADMIN이 필요합니다.

관련 정보