我正在嘗試在容器中設置網絡(使用 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 關注
- 147 瀏覽
添加回答
舉報
0/150
提交
取消