Frage :Wie finde ich das laufende Docker-Speichergerät, wenn Docker den Device-Mapper-Speichertreiber verwendet, und überprüfe dann die Größe davon?
1. Bitte führen Sie die „docker info ”-Befehl, um systemweite Docker-Informationen anzuzeigen, die die Docker-Speicherinformationen enthalten.
# docker info Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 0 Server Version: 18.03.1-ol Storage Driver: devicemapper Pool Name: docker-251:0-102683530-pool Pool Blocksize: 65.54kB Base Device Size: 26.84GB Backing Filesystem: xfs Udev Sync Supported: true Data file: /dev/loop0 data file Metadata file: /dev/loop1 metadata file Data loop file: /var/lib/docker/devicemapper/devicemapper/data data file Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata metadata file Data Space Used: 14.42MB used space of data file Data Space Total: 107.4GB total space of data file Data Space Available: 14.71GB Metadata Space Used: 581.6kB used space of metadata file Metadata Space Total: 2.147GB total space of metadata file Metadata Space Available: 2.147GB Thin Pool Minimum Free Space: 10.74GB Deferred Removal Enabled: true Deferred Deletion Enabled: true Deferred Deleted Device Count: 0 Library Version: 1.02.135-RHEL7 (2016-09-28) Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: bridge host macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog Swarm: inactive Runtimes: runc Default Runtime: run ...
2. Wir können auch „lsblk verwenden “ und „blkid “, um das Layout und die UUID des Docker-Speichers zu überprüfen.
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 19G 0 part ├─ol-root 251:0 0 17G 0 lvm / └─ol-swap 251:1 0 2G 0 lvm [SWAP] sr0 11:0 1 1024M 0 rom sr1 11:1 1 1024M 0 rom loop0 7:0 0 100G 0 loop └─docker-251:0-102683530-pool 251:2 0 100G 0 dm loop1 7:1 0 2G 0 loop └─docker-251:0-102683530-pool 251:2 0 100G 0 dm
# blkid ... /dev/loop0: UUID="19e56ade-5aeb-476f-aa95-ce68ec99b17a" TYPE="xfs" /dev/mapper/docker-251:0-102683530-pool: UUID="19e56ade-5aeb-476f-aa95-ce68ec99b17a" TYPE="xfs"
3. Wir können die eigentlichen Loopback-gemounteten Sparse-Dateien im Dateisystem finden.
# ll /var/lib/docker/devicemapper/devicemapper -l total 13904 -rw-------. 1 root root 107374182400 Jan 7 09:47 data 100 GB displayed size -rw-------. 1 root root 2147483648 Jan 7 10:48 metadata 2 GB displayed size
# du -skh * 13M data 13MB actual size 600K metadata 600 KB actual size
4. Wir können auch „losetup“ verwenden, um die Zuordnung der Loop-Geräte für den Docker-Speicher abzufragen.
# losetup -a /dev/loop0: [64256]:33600329 (/var/lib/docker/devicemapper/devicemapper/data) /dev/loop1: [64256]:33600330 (/var/lib/docker/devicemapper/devicemapper/metadata)
Aus der obigen Ausgabe können wir also entnehmen, dass der Docker-Speicher im Schleifenmodus ausgeführt wird. Dies wird durch die Tatsache angezeigt, dass sich die Daten-Loop-Datei und eine Metadaten-Loop-Datei in Dateien unter /var/lib/docker/devicemapper befinden. Dies sind Loopback-gemountete Sparse-Dateien. Daher ist die Größe dieser angezeigten Sparse-Dateien viel größer als ihre tatsächliche Größe auf der Festplatte.