如何访问docker容器中用于调试等的工具?

如何访问docker容器中用于调试等的工具?,docker,Docker,Docker映像通常是精简的,不包括调试问题时可能需要的所有实用程序。是否有一些方法可以轻松访问所有这些实用程序以调试正在运行的容器?理论上,我认为我可以附加一个包含二进制文件的卷,但是我想要的大多数便利不仅仅是静态二进制文件,而且通常没有好的工具来解决这个问题。另一种选择是构建单独的“可调试”映像,但这是一种痛苦,还要求您可以在新的容器中重现问题。您可以将调试工具安装到映像中。这会使它变得更大,但如果您经常发现自己需要在容器中调试代码,那就试试吧。一旦你的代码稳定下来,你就可以专注于使图像更小

Docker映像通常是精简的,不包括调试问题时可能需要的所有实用程序。是否有一些方法可以轻松访问所有这些实用程序以调试正在运行的容器?理论上,我认为我可以附加一个包含二进制文件的卷,但是我想要的大多数便利不仅仅是静态二进制文件,而且通常没有好的工具来解决这个问题。另一种选择是构建单独的“可调试”映像,但这是一种痛苦,还要求您可以在新的容器中重现问题。

您可以将调试工具安装到映像中。这会使它变得更大,但如果您经常发现自己需要在容器中调试代码,那就试试吧。一旦你的代码稳定下来,你就可以专注于使图像更小、更高效。是的,我就是这么想的。似乎有人可以创造更好的解决方案。如果您只想更正容器中托管的网站的代码,您也可以将源代码装载为外部卷,并直接从承载容器的操作系统进行更改。是否尝试使用docker exec?一旦容器出现错误,我将
docker exec-it my buggy container bash
,然后安装所需的调试工具。否则,您可以使用常用的调试创建基本映像,并从调试映像创建特定的调试映像
。没有提供任何调试工具,因为它可以是网络调试工具、二进制调试工具或性能调试工具,并且无法正确提供这些工具(映像中包含的服务应是稳定的)