libnetwork:错误:“some_app”的未知命令“/ var / run / docker / netns / 582bd184e561”

时间:2016-02-25 17:01:50

标签: go

我正在尝试在容器中设置网络(使用Docker的libnetworklibcontainer),但我一直在遇到这个问题。据我所知,它正在调查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 

我想知道是否有人可以帮助我理解这一点并且可能会阻止它。这两个是分开的错误吗?

谢谢

Here is the library I am trying to use

1 个答案:

答案 0 :(得分:0)

我花了一段时间来弄清楚这一点,但是这里有:

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

然而,reexec的外部接口上不存在这些命令。稍后使用名为reexec的库注入它们。为此,if reexec.Init() { return } 需要像这样初始化:

libnetwork

另请注意,根据this thread ILog logger = LogManager.GetLogger(typeof(MyClass));//normal logger ILog customerlogger= LogManager.GetLogger("customerlogger");//customer logger ,Docker之外的应用程序目前不支持。

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