宿主机分区的格式是ext4
[root@localhost ~]
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3
ext4 193G 103G 80G 57% /
tmpfs tmpfs 32G 0 32G 0%
/dev/shm
/dev/sda1
ext4 194M 79M 106M 43%
/boot
/dev/sda2
ext4 721G 136G 549G 20%
/home
1)下载私有仓库里的镜像(centos6和centos7下的docker命令和配置还是有所不同的)
[root@localhost ~]
......
other_args=
'--insecure-registry=192.168.1.23:5000'
.....
[root@localhost ~]
Stopping docker: [ OK ]
Starting docker: [ OK ]
[root@localhost ~]
latest: Pulling from 192.168.1.23:5000
/tomcat7
3690474eb5b4: Pull complete
0a444b299d5a: Pull complete
a04895de1996: Pull complete
08e1d80f2b80: Pull complete
fa7cc393f68b: Pull complete
Digest: sha256:b28f263bb8d5de3c93d64e85a5e9ee5cd6a1042f45ecbb951888d897d99e14e2
Status: Downloaded newer image
for
192.168.1.23:5000
/tomcat7
:latest
[root@localhost ~]
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
192.168.1.23:5000
/tomcat7
latest fa7cc393f68b 2 weeks ago 562.3 MB
2)创建容器
[root@localhost ~]
813389572d7f569e7b3705070033b43cf9e42ed9d304e03662c92533838ddec3
[root@localhost ~]
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
813389572d7f 192.168.1.23:5000
/tomcat7
"/bin/bash"
29 seconds ago Up 28 seconds 0.0.0.0:8998->8080
/tcp
my-
test
[root@localhost ~]
[root@813389572d7f /]
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/docker-8
:3-4850707-813389572d7f569e7b3705070033b43cf9e42ed9d304e03662c92533838ddec3 ext4 9.9G 703M 8.7G 8% /
tmpfs tmpfs 34G 0 34G 0%
/dev
shm tmpfs 68M 0 68M 0%
/dev/shm
/dev/sda3
ext4 207G 111G 86G 57%
/etc/hosts
注意
容器my-
test
的大小为默认的10G。
上面命令结果中的
/dev/mapper/docker-8
:3-4850707-813389572d7f569e7b3705070033b43cf9e42ed9d304e03662c92533838ddec3文件就是my-
test
容器存储的文件名。
3)--------------下面开始进行容器空间的动态扩容------------------
使用dmsetup查看该文件扇区信息.下面命令结果中的第二个数字(即20971520)是设备的大小,表示有多少个 512-bytes 的扇区. 这个值略高于 10GB 的大小。
[root@localhost ~]
0 20971520 thin 253:0 13
计算20G所需扇区数目
[root@localhost ~]
41943040
精简快照目标的一个神奇的特点是它不会限制卷的大小。当创建它的时候,一个精简的卷使用0个块,当开始往块里面写入的时候,它们会从共用的块池中进行分配。
可以写0个块,或者是10亿个块,这个和精简快照目标没关系。文件系统的大小只和Device Mapper表有关系。
只需要装载一个新的表,这个完全和之前的是一样的,但是有更多的扇区。仅此而已。
将新的扇区大小写入,注意只是改变旧表中的第二个数字20971520的数字,其他数字不变!
[root@localhost ~]
将修改后的容器存储文件激活
[root@localhost ~]
重新查看文件信息
[root@localhost ~]
0 41943040 thin 253:0 13
更改文件系统大小,使变更生。
[root@localhost ~]
resize2fs 1.41.12 (17-May-2010)
Filesystem at
/dev/mapper/docker-8
:3-4850707-813389572d7f569e7b3705070033b43cf9e42ed9d304e03662c92533838ddec3 is mounted on
/var/lib/docker/devicemapper/mnt/813389572d7f569e7b3705070033b43cf9e42ed9d304e03662c92533838ddec3
; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of
/dev/mapper/docker-8
:3-4850707-813389572d7f569e7b3705070033b43cf9e42ed9d304e03662c92533838ddec3 to 5242880 (4k) blocks.
The filesystem on
/dev/mapper/docker-8
:3-4850707-813389572d7f569e7b3705070033b43cf9e42ed9d304e03662c92533838ddec3 is now 5242880 blocks long.
------------------------------------------------------------------------------------------------------------------
如果这一步出现下面报错:
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: 设备或资源忙 当尝试打开
/dev/mapper/docker-253
:0-268868570-2163383f446357876b301fb3942b706436b5eea111c06a3acba0006ec5272372 时找不到有效的文件系统超级块.
原因是resize2fs仅能支持ext2、ext3、ext4,不支持xfs。将docker服务器的文件系统格式调整为ext4即可。
本文操作机是centos6系统,分区都是ext4格式,故不会出现这个报错
------------------------------------------------------------------------------------------------------------
再次登录my-
test
容器,发现容器大小已经更新为20G!
[root@localhost ~]
[root@813389572d7f /]
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/docker-8
:3-4850707-813389572d7f569e7b3705070033b43cf9e42ed9d304e03662c92533838ddec3 ext4 20G 708M 18G 4% /
tmpfs tmpfs 32G 0 32G 0%
/dev
shm tmpfs 64M 0 64M 0%
/dev/shm
/dev/sda3
ext4 193G 103G 80G 57%
/etc/hosts
------------------------------------------------------------
扩容后可能出现的问题:停止该容器后,无法重新启动-
当容器扩容之后,由于dm认为设备块大小仍然为之前设置的初始大小,所以会发生无法起启动的情况,这时只要重新操作即可。
1)必须要先启动一下,让其生成dm文件才能修改
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
----------------------------------------------------------------------------------------------------------------------------------