如何使用 Docker 客户端找到两个正在运行的容器之间的区别?我有一个作为多个实例运行的图像,后来我在实例中更改/安装了新包并丢失了轨道。有没有办法可以找到这些正在运行的容器之间的差异?
问问题
5125 次
2 回答
6
你必须检查容器
docker inspect CONTAINER_1
docker inspect CONTAINER_2
找到每个片段
"id": "cc502eeb69968c9b80c029f8124333d725ee124db4357de69786bc9bdf3a8088",
然后使用拖车 ID,您可以比较文件夹
/var/lib/docker/aufs/mnt/CONTAINER_1 与 /var/lib/docker/aufs/mnt/CONTAINER_2
于 2014-10-08T13:09:22.773 回答
6
您正在寻找docker diff命令,该命令列出了容器文件系统自创建以来所做的更改。
以这个例子为例,其中创建了一个名为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
详细说明哪些文件被C挂起、添加或D删除。
如果您需要有关这些文件中更改内容的详细信息,那么您别无选择,只能使用docker export导出容器文件系统或使用docker cp导出单个文件并检查它们。
请注意,docker export
并且docker cp
只会向您显示属于容器文件系统的文件,因此这些命令不会让您访问volumes中的文件。
于 2014-10-07T09:08:22.117 回答