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

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


当前回答

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

其他回答

我想这样做,但我无法执行到我的容器,因为它已经停止,并且由于我的代码中的一些错误而没有重新启动。

对我来说,有效的方法是简单地将整个容器的内容复制到一个新的文件夹中,就像这样:

docker cp container_name:/app/ new_dummy_folder

然后我就可以像使用普通文件夹一样浏览这个文件夹的内容了。

创建容器之前:

如果你想探索图像的结构,即安装在容器内,你可以这样做

sudo docker image save image_name > image.tar
tar -xvf image.tar

这将使您可以看到图像的所有层及其json文件中的配置。

创建容器后:

对于这个问题,上面已经有很多答案了。我喜欢的方式 这将是

docker exec -t -i container /bin/bash

对我来说,这个工作得很好(感谢最后的注释指出目录/var/lib/docker/):

chroot /var/lib/docker/containers/2465790aa2c4*/root/

这里,2465790aa2c4是运行容器的短ID(由docker ps显示),后面跟着一个星号。

这将为映像启动一个bash会话:

Docker运行——rm -it——entrypoint=/bin/bash

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