我不理解' docker diff'的输出。请参阅下文了解详情。 这是我的Docker版本:
$ docker version
Client version: 1.7.1
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 786b29d
OS/Arch (client): linux/amd64
Server version: 1.7.1
Server API version: 1.19
Go version (server): go1.4.2
Git commit (server): 786b29d
OS/Arch (server): linux/amd64
我在/ var / jenkins_home中有一个带有以下内容的Jenkins图像:
$ docker run -it --rm jenkins ls /var/jenkins_home
init.groovy.d
然后我启动Jenkins填充Jenkins数据目录:
$ docker run --name app -d jenkins
启动Jenkins后,我调用容器列出文件:
$ docker exec app ls /var/jenkins_home
Download metadata.log
hudson.model.UpdateCenter.xml
identity.key.enc
init.groovy.d
jobs
nodeMonitors.xml
nodes
plugins
secret.key
secret.key.not-so-secret
secrets
updates
userContent
确定!很多新文件。现在我想问Docker更改或创建了哪些文件:
$ docker diff app
C /tmp
A /tmp/hsperfdata_jenkins
A /tmp/hsperfdata_jenkins/1
A /tmp/jetty-0.0.0.0-8080-war--any-
A /tmp/jffi6440203232202129886.tmp
A /tmp/jna--1712433994
A /tmp/winstone874928832634242220.jar
C /var
C /var/log
C /var/log/copy_reference_file.log
那么为什么#docker diff'我没有在' / var / jenkins_home'中显示新文件? 我做错了什么?
祝你好运, - Morten Green Hermansen,Fanitas
答案 0 :(得分:5)
如果您查看Dockerfile for the Jenkins image,您会注意到有VOLUME指令使位置/var/jenkins_home
成为卷装入点。
因此,写入/var/jenkins_home
的任何数据都存储在卷装入点上,而不存储在容器文件系统本身上。
docker diff命令仅显示容器文件系统上的差异,并且不会显示与卷装入点内容相关的任何内容。