我正在尝试在容器中设置网络(使用 Dockerlibnetwork和libcontainer),但我一直遇到这个问题。据我所知,它正在调查some_app以获取一些沙箱信息?INFO[3808] No non-localhost DNS nameservers are left in resolv.conf. Using default external servers : [nameserver 8.8.8.8 nameserver 8.8.4.4] INFO[3808] IPv6 enabled; Adding default IPv6 external servers : [nameserver 2001:4860:4860::8888 nameserver 2001:4860:4860::8844] Error: unknown command "/var/run/docker/netns/582bd184e561" for "some_app"Run 'some_app --help' for usage.ERRO[3808] Resolver Setup/Start failed for container 6b81802576bd4f16aa117061f81b5c3e, "setup not done yet" ERRO[3808] failed to add interface vethef0a693 to sandbox: failed in prefunc: failed to set namespace on link "vethef0a693": invalid argument ERRO[3808] failed to add interface vethef0a693 to sandbox: failed in prefunc: failed to set namespace on link "vethef0a693": invalid argument 我想知道是否有人可以帮助我理解这一点并可能阻止它。这是两个不同的错误吗?
1 回答
潇湘沐
TA贡献1816条经验 获得超6个赞
我花了一段时间才弄清楚这一点,但这里是:
就像在 Docker 中一样,libnetwork创建一个 veth 接口对。然后它将 veth 对的一端移动到容器命名空间中。在此过程中,libnetwork尝试执行在运行时在当前二进制实例上注册的命令(some_app在本例中)。
some_app然而,这些命令在外部接口上不存在。稍后使用名为reexec. 为此,reexec需要像这样初始化:
if reexec.Init() {
return
}
另请注意,根据此线程 libnetwork,当前不支持 Docker 之外的应用程序。
注意:我通过阅读源代码发现了这一点,所以我可能是错的,但我的问题在此之后就消失了。
- 1 回答
- 0 关注
- 194 浏览
添加回答
举报
0/150
提交
取消
