Docker卷存储复制

标签 docker docker-volume

我正在运行 ElasticSearch 的 dockerized 版本,并使用卷将 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 存储卷提供的写文件系统副本挂载的。在此内部,可以安装各种“卷”。卷是不同的,因为它使用写时复制文件系统,它使用系统的基本文件系统,并安装在 rootfs 中您指定的位置。如果您为您的卷选择一个主机位置,该目录/文件将被挂载到容器文件系统中 - 如果您不这样做,docker 将为您创建一个目录并挂载它。

所以。

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

关于Docker卷存储复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41386985/

相关文章:

docker - 将文件放在 GKE 上的 Kubernetes 持久卷存储中

amazon-web-services - 在云端特定时间运行docker容器

docker - Gitlab docker 和 external_url

django - Docker:将新的 postgres 容器重新连接到现有的数据容器

docker - 无法将 Docker 卷的写入权限授予 Docker Compose 中的非 root 用户

postgresql - 用于持久化PostgreSQL数据库数据的Docker卷

apache - 如何管理安装到 docker 容器中的卷的权限?

bash -/bin/sh : apt-get: not found

docker - Kubernetes 集群中处于挂起状态的 Coredns

docker - 如何在 Windows 机器上访问 docker 数据卷?