Docker exec与nsenter:任何陷阱?

L0j*_*j1k 8 docker nsenter

在过去的几个月里,我一直在使用nsenter来在容器上运行shell以进行调试.我听说并使用了版本1.3中引入的docker exec.Docker exec 似乎是为了进行调试而进入容器的新的最佳实践,但我想知道使用docker exec和nsenter是否有任何缺点.比较两者的信息很少.使用docker exec与nsenter 时,我应该注意或避免哪些具体问题?

use*_*986 7

Docker Exec 与 Nsenter

  1. nsenter不提供资源限制,因为它cgroups不像docker
  2. nsenter仅适用于 x86-64 arch
  3. nsenter无法在容器内运行(仅在主机上)

nsenter和之间存在差异docker exec;即, nsenter不进入cgroups,因此规避了资源限制。这样做的潜在好处是调试和外部审计。但对于远程访问,docker exec 是当前推荐的方法。

nsenter仅适用于 Intel 64 位平台。

nsenter 仍然需要从主机运行;它不能在容器内运行。

参考: https: //github.com/jpetazzo/nsenter/blob/master/README.md


her*_*off 6

现在还不完全清楚.但我会支持这样一种观点,即既然docker exec是官方的方式,那就是这样.nsenter 实际建议使用的作者docker exec.如果您遇到任何弊端,他鼓励您报告.