两个容器之间的Docker差异

如何find使用Docker客户端的两个正在运行的容器之间的区别? 我有一个图像作为多个实例运行,后来我已经改变/安装新的包在实例中,失去了轨道。 有没有办法find这些正在运行的容器之间的区别?

你必须检查容器

 docker inspect CONTAINER_1 docker inspect CONTAINER_2 

find每个片段

“Id”:“cc502eeb69968c9b80c029f8124333d725ee124db4357de69786bc9bdf3a8088”,

然后用拖曳的ID可以比较文件夹

/ var / lib / docker / aufs / mnt / CONTAINER_1 vs / var / lib / docker / aufs / mnt / CONTAINER_2

您正在查找docker diff命令,该命令将列出创build后容器所做的更改。

以此示例为例,其中创build了一个名为so-26230214的新容器,其中添加了/tmp/foo.txt文件,并删除了/etc/default/ntpdate

 $ docker run -it --name so-26230214 base bash -il root@b33340ce7b9f:/# echo "foo" > /tmp/foo.txt root@b33340ce7b9f:/# rm /etc/default/ntpdate root@b33340ce7b9f:/# logout 

docker diff命令将打印出来:

 $ docker diff so-26230214 C /etc C /etc/default D /etc/default/ntpdate C /root A /root/.bash_history C /tmp A /tmp/foo.txt 

这将允许您知道哪些文件被更改。

如果您需要这些文件中更改内容的详细信息,则除了使用docker cp导出容器文件系统或使用docker cp 导出单个文件并检查它们之外,别无select。

请注意, docker exportdocker cp将只显示属于容器文件系统一部分的文件,这意味着这些命令不会让您访问卷中的文件。