-
docker修改保存路径:
.docker容器默认保存路径在/var/lib/docker中;
.若docker存储路径中内存不足,用命令df -Th 查看分区目录,查找磁盘大的分区,将docker目录放到分区
. df -Th
[root@mips64el-fedora-master2 mapper]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 16G 0 16G 0% /dev
tmpfs tmpfs 16G 0 16G 0% /dev/shm
tmpfs tmpfs 16G 4.8M 16G 1% /run
tmpfs tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/mapper/fedora_sunhaiyong-root ext4 50G 40G 10G 80% /
tmpfs tmpfs 16G 16K 16G 1% /tmp
/dev/sda1 ext3 477M 45M 407M 10% /boot
/dev/mapper/fedora_sunhaiyong-home ext4 1.8T 132G 1.6T 8% /home
tmpfs tmpfs 3.2G 16K 3.2G 1% /run/user/989
/dev/dm-4 xfs 50G 1.7G 49G 4% /var/lib/docker/devicemapper/mnt/95acd1b267faf716049e1b70ab4a682df0744bf5dc42b36b9c6948e2eae053dc
shm tmpfs 64M 0 64M 0% /var/lib/docker/containers/b3fa22e3172fd464bc873403f66ac538a82af1c71e67d01ab7ed05b911a4c866/shm
/dev/dm-5 xfs 50G 5.5G 45G 11% /var/lib/docker/devicemapper/mnt/e692c78e33d7709db886baf72ae8508bcaf052ad17cfa2b495ad73e4a648ffb2
/dev/dm-6 xfs 50G 9.5G 41G 19% /var/lib/docker/devicemapper/mnt/5f9a028080889e05b201b0737ec8b34b62c27796c74ff9e2c73610b33afbeff2
/dev/dm-7 xfs 50G 5.3G 45G 11% /var/lib/docker/devicemapper/mnt/b629cdc99fd45d90c4ab3816c6d21c3d0137df2a3c05e193af27020dd79ee596
shm tmpfs 64M 0 64M 0% /var/lib/docker/containers/37c649ad313aa15ca7dee1150621c6272bfe0ab17ac646185f21024b780d0a6f/shm
shm tmpfs 64M 0 64M 0% /var/lib/docker/containers/f7e2dc963186060212ca67e22280ee118d665e5f2ab7f36636c09ed5633e1208/shm
shm tmpfs 64M 0 64M 0% /var/lib/docker/containers/4b958b316337b51feb2f55f5cc9886795370063cfaa2f47ee7d198536c8e8e5d/shm
tmpfs tmpfs 3.2G 0 3.2G 0% /run/user/0
/dev/dm-8 xfs 42G 420M 42G 1% /var/lib/docker/devicemapper/mnt/e044dfa0c0c7e1187a014b3f2c4cc974c243e677c61b4b54153a6f07a142cc3d
shm tmpfs 64M 0 64M 0% /var/lib/docker/containers/2dacd6996d97df1e7ae4238b28e8e3425f23b3fe30f9b87b5341c0009960815f/shm
.首先关闭docker
systemctl stop docker
.在home目录下建立一个docker目录
mv /var/lib/docker* /home/docker
.建立软链接,保持docker的默认路径不变
ln -s /home/docker /var/lib/docker
.启动docker
systemctl start docker
.df -hT查看
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 16G 0 16G 0% /dev
tmpfs tmpfs 16G 0 16G 0% /dev/shm
tmpfs tmpfs 16G 4.8M 16G 1% /run
tmpfs tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/mapper/fedora_sunhaiyong-root ext4 50G 12G 36G 24% /
tmpfs tmpfs 16G 16K 16G 1% /tmp
/dev/sda1 ext3 477M 45M 407M 10% /boot
/dev/mapper/fedora_sunhaiyong-home ext4 1.8T 132G 1.6T 8% /home
tmpfs tmpfs 3.2G 16K 3.2G 1% /run/user/989
/dev/dm-4 xfs 50G 1.7G 49G 4% /home/docker/devicemapper/mnt/95acd1b267faf716049e1b70ab4a682df0744bf5dc42b36b9c6948e2eae053dc
shm tmpfs 64M 0 64M 0% /home/docker/containers/b3fa22e3172fd464bc873403f66ac538a82af1c71e67d01ab7ed05b911a4c866/shm
/dev/dm-5 xfs 50G 5.5G 45G 11% /home/docker/devicemapper/mnt/e692c78e33d7709db886baf72ae8508bcaf052ad17cfa2b495ad73e4a648ffb2
/dev/dm-6 xfs 50G 9.5G 41G 19% /home/docker/devicemapper/mnt/5f9a028080889e05b201b0737ec8b34b62c27796c74ff9e2c73610b33afbeff2
/dev/dm-7 xfs 50G 5.3G 45G 11% /home/docker/devicemapper/mnt/b629cdc99fd45d90c4ab3816c6d21c3d0137df2a3c05e193af27020dd79ee596
shm tmpfs 64M 0 64M 0% /home/docker/containers/37c649ad313aa15ca7dee1150621c6272bfe0ab17ac646185f21024b780d0a6f/shm
shm tmpfs 64M 0 64M 0% /home/docker/containers/f7e2dc963186060212ca67e22280ee118d665e5f2ab7f36636c09ed5633e1208/shm
shm tmpfs 64M 0 64M 0% /home/docker/containers/4b958b316337b51feb2f55f5cc9886795370063cfaa2f47ee7d198536c8e8e5d/shm
tmpfs tmpfs 3.2G 0 3.2G 0% /run/user/0
/dev/dm-8 xfs 42G 420M 42G 1% /home/docker/devicemapper/mnt/e044dfa0c0c7e1187a014b3f2c4cc974c243e677c61b4b54153a6f07a142cc3d
shm tmpfs 64M 0 64M 0% /home/docker/containers/2dacd6996d97df1e7ae4238b28e8e3425f23b3fe30f9b87b5341c0009960815f/shm
-
docker扩充磁盘容量
.docker默认安装后磁盘容量是10G,若磁盘容量不够,导致集群节点unheathy
.查看docker容器的磁盘大小
root@2dacd6996d97:/# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/docker-254:2-92012681-e044dfa0c0c7e1187a014b3f2c4cc974c243e677c61b4b54153a6f07a142cc3d xfs 10G 419M 9.6G 5% /
tmpfs tmpfs 16G 0 16G 0% /dev
tmpfs tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/mapper/fedora_sunhaiyong-home ext4 1.8T 132G 1.6T 8% /etc/hosts
shm tmpfs 64M 0 64M 0% /dev/shm
.动态扩充容器磁盘
退出容器,到主机上,执行dmsetup table ,查看正在运行的容器卷
[root@mips64el-fedora-master2 mapper]# dmsetup table
docker-254:2-92012681-pool: 0 4194304000 thin-pool 7:1 7:0 128 32768 1 skip_block_zeroing
fedora_sunhaiyong-home: 0 3768238080 linear 8:2 32770048
docker-254:2-92012681-e044dfa0c0c7e1187a014b3f2c4cc974c243e677c61b4b54153a6f07a142cc3d: 0 20971520 thin 254:3 183736
fedora_sunhaiyong-swap: 0 32768000 linear 8:2 2048
docker-254:2-92012681-5f9a028080889e05b201b0737ec8b34b62c27796c74ff9e2c73610b33afbeff2: 0 20971520 thin 254:3 183881
docker-254:2-92012681-95acd1b267faf716049e1b70ab4a682df0744bf5dc42b36b9c6948e2eae053dc: 0 20971520 thin 254:3 183908
fedora_sunhaiyong-root: 0 104857600 linear 8:2 3801008128
docker-254:2-92012681-e692c78e33d7709db886baf72ae8508bcaf052ad17cfa2b495ad73e4a648ffb2: 0 20971520 thin 254:3 183883
docker-254:2-92012681-b629cdc99fd45d90c4ab3816c6d21c3d0137df2a3c05e193af27020dd79ee596: 0 20971520 thin 254:3 183879
.上面的20971520 就是代表10G磁盘
.计算要扩充到的磁盘大小(若50G)
[root@mips64el-fedora-master2 mapper]# echo $((50*1024*1024*1024/512))
104857600
.使用命令
[root@mips64el-fedora-master2 mapper]# dmsetup table docker-254:2-92012681-e044dfa0c0c7e1187a014b3f2c4cc974c243e677c61b4b54153a6f07a142cc3d
0 20971520 thin 254:3 183736
.使用命令修改磁盘大小
[root@mips64el-fedora-master2 mapper]# echo 0 104857600 thin 254:3 183736 | dmsetup load docker-254:2-92012681-e044dfa0c0c7e1187a014b3f2c4cc974c243e677c61b4b54153a6f07a142cc3d
.现在,如果我们再次检查表,它仍然是相同的,因为新表必须首先激活,使用以下命令:
[root@mips64el-fedora-master2 mapper]# dmsetup resume docker-254:2-92012681-e044dfa0c0c7e1187a014b3f2c4cc974c243e677c61b4b54153a6f07a142cc3d
.在该命令之后,再次检查该表,它将具有新的扇区数。我们已经调整了块设备的大小,但我们仍然需要调整文件系统的大小。
[root@mips64el-fedora-master2 mapper]# resize2fs /dev/mapper/docker-254:2-92012681-e044dfa0c0c7e1187a014b3f2c4cc974c243e677c61b4b54153a6f07a142cc3d
若报错:
resize2fs: Bad magic number in super-block 当尝试打开 /dev/mapper/docker-254:2-92012681-e044dfa0c0c7e1187a014b3f2c4cc974c243e677c61b4b54153a6f07a142cc3d 时
找不到有效的文件系统超级块.
解决:
.看上面的磁盘分区情况,确认文件系统是xfs,xfs扩充磁盘空间用 xfs_growfs 命令
[root@mips64el-fedora-master2 ~]# xfs_growfs /dev/mapper/docker-254:2-92012681-e692c78e33d7709db886baf72ae8508bcaf052ad17cfa2b495ad73e4a648ffb2
xfs_growfs: /dev/mapper/docker-254:2-92012681-e692c78e33d7709db886baf72ae8508bcaf052ad17cfa2b495ad73e4a648ffb2 is not a mounted XFS filesystem
.进入容器,查看容器磁盘并没有改变
.这时才想到我们docker的保存路径改变了,因此用以下命令查找具体位置
[root@mips64el-fedora-master2 mapper]# mount |grep docker-254:2-92012681-e044dfa0c0c7e1187a014b3f2c4cc974c243e677c61b4b54153a6f07a142cc3d
/dev/mapper/docker-254:2-92012681-e044dfa0c0c7e1187a014b3f2c4cc974c243e677c61b4b54153a6f07a142cc3d on /home/docker/devicemapper/mnt/e044dfa0c0c7e1187a014b3f2c4cc974c243e677c61b4b54153a6f07a142cc3d type xfs (rw,relatime,nouuid,attr2,inode64,logbsize=64k,sunit=128,swidth=128,noquota)
.执行命令 xfs_growfs /home/docker/devicemapper/mnt/e044dfa0c0c7e1187a014b3f2c4cc974c243e677c61b4b54153a6f07a142cc3d 完成文件磁盘的扩容
fs_growfs /home/docker/devicemapper/mnt/e044dfa0c0c7e1187a014b3f2c4cc974c243e677c61b4b54153a6f07a142cc3d
meta-data=/dev/mapper/docker-254:2-92012681-e044dfa0c0c7e1187a014b3f2c4cc974c243e677c61b4b54153a6f07a142cc3d isize=256 agcount=16, agsize=163824 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=2621184, imaxpct=25
= sunit=16 swidth=16 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=16 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 2621184 to 2621440
.进入容器查看磁盘变化
root@2dacd6996d97:/# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/docker-254:2-92012681-e044dfa0c0c7e1187a014b3f2c4cc974c243e677c61b4b54153a6f07a142cc3d xfs 50G 420M 49G 1% /
tmpfs tmpfs 16G 0 16G 0% /dev
tmpfs tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/mapper/fedora_sunhaiyong-home ext4 1.8T 132G 1.6T 8% /etc/hosts
shm tmpfs 64M 0 64M 0% /dev/shm
可参考官网链接:http://jpetazzo.github.io/2014/01/29/docker-device-mapper-resize/