我已经注意到,与docker,我需要了解什么发生在容器内或什么文件存在于那里。一个例子是从docker索引中下载图像-你不知道图像包含什么,所以不可能启动应用程序。

理想的情况是能够ssh进入它们或具有同等功能。是否有工具可以做到这一点,或者我对docker的概念错误,认为我应该能够做到这一点。


当前回答

虽然姗姗来迟,但在2022年我们有了VS Code

其他回答

你可以在容器中运行bash: 运行ubuntu /bin/bash

我使用了另一个肮脏的技巧,即aufs/devicemapper不可知论。

我查看容器正在运行的命令,例如docker ps 如果它是apache或Java,我只做以下事情:

sudo -s
cd /proc/$(pgrep java)/root/

voilá你在容器内。

基本上你可以作为根cd到/proc/<PID>/root/文件夹,只要这个进程是由容器运行的。注意符号链接将没有意义的使用这种模式。

在我的例子中,除了sh,容器中不支持任何shell。所以,这就像一个魅力

docker exec -it <container-name> sh

您可以使用dive与TUI交互查看图像内容

https://github.com/wagoodman/dive

试着用

docker exec -it <container-name> /bin/bash

有可能bash没有实现。你可以用这个

docker exec -it <container-name> sh