Go libnetwork:错误:未知命令“/var/run/docker/netns/582bd184e561“;至于;一些“应用程序”;
我正在尝试在容器中设置网络(使用Docker的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
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:我通过阅读源代码发现了这一点,因此我可能是错的,但我的问题在这之后就消失了