Docker卷存储重复

Docker volume storage duplication

我是 运行 ElasticSearch 的 docker 化版本,使用卷将 ElasticSearch 目录映射到 docker 之外。

我的问题是 docker 容器(在 /var/lib/docker/containers/ 中)的大小增长速度与我的 /path/to/outside/docker/container 目录中的文件增长速度相同。我已经确认 docker 容器中的内容与 /path/to... 目录中的内容相同。

这种数据重复正常吗?

Docker 附加信息:

Server Version: 1.12.1
Storage Driver: devicemapper
 Pool Name: docker-253:6-3151143-pool
 Pool Blocksize: 65.54 kB
 Base Device Size: 10.74 GB
 Backing Filesystem: xfs
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data Space Used: 1.123 GB
 Data Space Total: 107.4 GB
 Data Space Available: 9.204 GB
 Metadata Space Used: 2.966 MB
 Metadata Space Total: 2.147 GB
 Metadata Space Available: 2.145 GB
 Thin Pool Minimum Free Space: 10.74 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Deferred Deletion Enabled: false
 Deferred Deleted Device Count: 0
 Data loop file: /var/lib/docker/devicemapper/devicemapper/data
 WARNING: Usage of loopback devices is strongly discouraged for production use. Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.
 Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
 Library Version: 1.02.107-RHEL7 (2016-06-09)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 3.10.0-327.36.1.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 3.687 GiB
Name: bos-qa-elk-01
ID: CFHQ:37BL:JKQM:E5LC:IYHO:ZO3T:USKV:SGUW:XFYV:3IYJ:K5QD:U5PN
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Insecure Registries:
 127.0.0.0/8

docker 容器中的文件系统由几部分组成。第一个是映像中的根文件系统——这是从 Docker 存储卷提供的写入文件系统的副本挂载的。在此内部,可以安装各种 "volumes"。卷是不同的,因为它 使用写时复制文件系统,它使用系统的基本文件系统,并安装在 rootfs 中您指定的位置。如果您为您的卷选择一个主机位置,directory/file 将安装在容器文件系统内 - 如果您不这样做,docker 将为您创建一个目录并安装它。

所以。

您在主机系统上创建了一个卷并在其中存储数据。数据实际上存在于主机上的那个位置。在容器内,挂载了卷目录,因此您也可以在那里看到相同的数据。这并不意味着数据重复,只是你可以在多个地方看到它。