在过去的几个月里,我一直在使用nsenter来让 shell 在容器上运行以进行调试。我听说过并使用了 1.3 版中引入的docker exec 。Docker exec似乎是进入容器进行调试目的的新最佳实践,但我想知道使用 docker exec 与 nsenter 是否有任何缺点。比较两者的信息很少。docker exec
在使用与 nsenter 相比时,我应该注意或避免任何特定问题吗?
问问题
5435 次
2 回答
6
现在还不完全清楚。但我会支持这样的观点,即既然docker exec
是官方方式,那就去吧。作者nsenter
实际上建议使用docker exec
. 如果您遇到任何缺点,他鼓励您报告它们。
于 2015-01-11T20:17:51.667 回答
4
docker exec 与 nsenter
nsenter 和 docker exec 是有区别的;也就是说,nsenter 不会进入 cgroup,因此可以规避资源限制。这样做的潜在好处是调试和外部审计,但对于远程访问,docker exec 是当前推荐的方法。
仅适用于 Intel 64 位平台。可以说,这是 Docker 唯一官方支持的平台;所以这没什么大不了的。
nsenter 仍然需要从主机运行;它不能在容器内运行(还)。
参考:https ://github.com/jpetazzo/nsenter/blob/master/README.md
于 2016-01-01T23:19:02.770 回答