了解 docker 差异
Understanding docker diff
我不明白 '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
如果您查看使位置 /var/jenkins_home
成为卷安装点的 Dockerfile for the Jenkins image, you will notice that there is a VOLUME 指令。
因此,写入 /var/jenkins_home
的任何数据都存储在卷安装点上,而不是存储在 容器文件系统 本身。
docker diff 命令只会显示 容器文件系统 上的差异,不会显示与卷挂载点内容相关的任何内容。
我不明白 '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
如果您查看使位置 /var/jenkins_home
成为卷安装点的 Dockerfile for the Jenkins image, you will notice that there is a VOLUME 指令。
因此,写入 /var/jenkins_home
的任何数据都存储在卷安装点上,而不是存储在 容器文件系统 本身。
docker diff 命令只会显示 容器文件系统 上的差异,不会显示与卷挂载点内容相关的任何内容。