我正在尝试构建一个包含此 github 存储库的 docker 映像:https://github.com/javgh/sia-nbdserver
这是一个nbd-server,在本地缓存文件,然后将它们写入sia分布式存储网络。我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