Docker中运行IPv6版OpenVPN遇权限错误,需添加何种权限?
解决Docker容器中OpenVPN配置IPv6地址的权限问题
你碰到的是Docker容器权限不足导致无法配置IPv6地址的问题,我来帮你解决:
解决方案
修改你的容器启动命令,额外添加--cap-add=NET_RAW权限参数:
sudo docker run -it --name container --cap-add=NET_ADMIN --cap-add=NET_RAW --device=/dev/net/tun myimage
原因解释
你已经添加了NET_ADMIN权限,这个权限允许容器管理网络接口(比如创建tun设备、配置IPv4地址),但配置IPv6地址这类操作需要额外的NET_RAW权限——这个权限授予容器执行底层网络操作的能力,包括IPv6地址的添加与管理。之前的错误就是因为缺少这个权限,导致ip -6 addr add命令被系统拒绝执行。
另外,如果你宿主机本身启用了IPv6,也可以确保Docker daemon的IPv6功能是开启的(不过从你的错误日志来看,核心问题还是权限不足,添加NET_RAW应该就能解决)。
内容的提问来源于stack exchange,提问作者Matthias Lohr




