Linux-docker如何映射主机分区?

前端之家收集整理的这篇文章主要介绍了Linux-docker如何映射主机分区? 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我对Docker相对较新,当我启动容器(ubuntu基本映像)时,我注意到以下内容

在主机上

$df -h
...
/dev/sdc1       180M   98M   70M  59% /boot
/dev/sdc2        46G   20G   24G  46% /home
/dev/sdc5        37G  7.7G   27G  23% /usr
/dev/sdc6        19G   13G  5.3G  70% /var

$lsblk
...
sdc      8:32   0 232.9G  0 disk 
├─sdc1   8:33   0   190M  0 part /boot
├─sdc2   8:34   0  46.6G  0 part /home
├─sdc3   8:35   0  18.6G  0 part /
├─sdc4   8:36   0     1K  0 part 
├─sdc5   8:37   0  37.3G  0 part /usr
├─sdc6   8:38   0  18.6G  0 part /var
├─sdc7   8:39   0  29.8G  0 part [SWAP]
└─sdc8   8:40   0  42.8G  0 part 

在容器上

$df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs           19G   13G  5.3G  70% /
none             19G   13G  5.3G  70% /
tmpfs           7.8G     0  7.8G   0% /dev
shm              64M     0   64M   0% /dev/shm
/dev/sdc6        19G   13G  5.3G  70% /etc/hosts
tmpfs           7.8G     0  7.8G   0% /proc/kcore
tmpfs           7.8G     0  7.8G   0% /proc/latency_stats
tmpfs           7.8G     0  7.8G   0% /proc/timer_stats

$lsblk
sdc      8:32   0 232.9G  0 disk 
|-sdc1   8:33   0   190M  0 part 
|-sdc2   8:34   0  46.6G  0 part 
|-sdc3   8:35   0  18.6G  0 part 
|-sdc4   8:36   0     1K  0 part 
|-sdc5   8:37   0  37.3G  0 part 
|-sdc6   8:38   0  18.6G  0 part /var/lib/cassandra
|-sdc7   8:39   0  29.8G  0 part [SWAP]
`-sdc8   8:40   0  42.8G  0 part 

问题1:为什么将sdc6安装在主机和容器之间的不同位置?

因为两个安装点的内容不同,所以我假设docker必须在容器上完成某种设备映射,因此容器中的sdc6与主机上的sdc6不同.但是,分区容量和用法是相同的,因此我在这里感到困惑.

问题2:为什么容器的根目录使用率如此之高?泊坞窗映像上没有太多内容.

谢谢你的帮助.

加成

Dockerfile有一行

VOLUME /var/lib/cassandra
最佳答案

Question 1: why is sdc6 mounted on different places between the host and the container?

主机上的/ dev / sdc6是/ var,这是/ var / lib / docker所在的位置,并且Docker保留某些数据,例如分配给您的容器的主机文件.

主机文件在容器内作为绑定安装公开,这就是为什么您看到以下内容

/dev/sdc6        19G   13G  5.3G  70% /etc/hosts

Question 2: why is the container’s root dir usage so high? The docker image doesn’t have much stuff on it.

看一下容器内部的df输出

rootfs           19G   13G  5.3G  70% /

现在查看主机上的df输出,您将看到:

/dev/sdc6        19G   13G  5.3G  70% /var

容器内的df反映了主机文件系统的状态.这表明您正在使用aufs或overlay存储驱动程序,两者都为主机文件系统顶部的容器创建了“ overlay”文件系统.如果您使用devicemapper存储驱动程序,则df的输出看起来会有所不同,它依赖于设备映射器块设备而不是覆盖文件系统.

猜你在找的Docker相关文章