이 Github 저장소가 포함된 Docker 이미지를 빌드하려고 합니다.https://github.com/javgh/sia-nbdserver
이는 파일을 로컬로 캐시한 다음 SIA 분산 스토리지 네트워크에 쓰는 nbd 서버입니다. 호스트에서 실행 중이고 이제 modprobe nbd
/dev/nbd0을 통해 컨테이너로 이동하고 컨테이너 내부의 nbd-client를 사용하여 호스트가 장치에 쓴 데이터를 unix 도메인 소켓을 사용하여 nbd-server로 보내려고 합니다. . 컨테이너 내부에서 /dev/nbd0을 볼 수 있고 nbd-server가 작동 중이며 /tmp/sia-nbdserver 소켓에서 수신 대기 중이지만 실행하려고 하면 다음과 같은 메시지가 표시 # nbd-client -b 4096 -t 3600 -u /tmp/sia-nbdserver /dev/nbd0
됩니다.Error: Couldn't resolve the nbd netlink family, make sure the nbd module is loaded and your nbd driver supports the netlink interface.
권한이 문제가 되지 않도록 --cap-add SYS-ADMIN
컨테이너 를 실행 중입니다 .--privileged
어떤 아이디어가 있나요?
답변1
다음 명령을 사용하여 컨테이너를 실행합니다.
docker run -it --rm --privileged --cap-add=ALL -v/dev:/dev -v/lib/modules:/lib/modules:ro image-id
그리고 모듈이 컨테이너에 올바르게 로드되었는지 확인합니다.
답변2
동일한 상황이 발생하여 추가하여 해결되었습니다.--net=host
docker run -it --rm --privileged --cap-add=ALL --net=host -v/dev:/dev -v/lib/modules:/lib/modules:ro image-id