Go libnetwork:错误:未知命令“/var/run/docker/netns/582bd184e561“;至于;一些“应用程序”;

Go libnetwork:错误:未知命令“/var/run/docker/netns/582bd184e561“;至于;一些“应用程序”;,go,Go,我正在尝试在容器中设置网络(使用Docker的libnetwork和libcontainer),但我一直遇到这个问题。据我所知,它正在调查一些应用程序,以获取一些沙箱信息 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 enabl

我正在尝试在容器中设置网络(使用Docker的
libnetwork
libcontainer
),但我一直遇到这个问题。据我所知,它正在调查一些应用程序,以获取一些沙箱信息

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 
我想知道是否有人能帮助我理解这一点,也许能阻止它。这两个错误是分开的吗

多谢各位


我花了一段时间才弄明白这一点,但下面是:

就像在Docker中一样,
libnetwork
创建一个veth接口对。然后,它将veth对的一端移动到容器名称空间中。在此过程中,
libnetwork
尝试执行在当前二进制实例上运行时注册的命令(
some_app

但是,
某些应用程序的外部接口上不存在这些命令。它们稍后将使用名为的库进行注入。要使其工作,
reexec
需要如下初始化:

if reexec.Init() {
    return
}
另请注意,根据
libnetwork
,Docker之外的应用程序目前不支持libnetwork

NB:我通过阅读源代码发现了这一点,因此我可能是错的,但我的问题在这之后就消失了