|   宿主机分区的格式是ext4  [root@localhost ~]# df -hT  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 ~]# vim /etc/sysconfig/docker  ......  other_args='--insecure-registry=192.168.1.23:5000'  .....     [root@localhost ~]# service docker restart  Stopping docker:                                           [  OK  ]  Starting docker:                                           [  OK  ]       [root@localhost ~]# docker pull 192.168.1.23:5000/tomcat7  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 ~]# docker images  REPOSITORY                  TAG                 IMAGE ID            CREATED             VIRTUAL SIZE  192.168.1.23:5000/tomcat7   latest              fa7cc393f68b        2 weeks ago         562.3 MB     2)创建容器  [root@localhost ~]# docker run -ti -d --name my-test -p 8998:8080 192.168.1.23:5000/tomcat7 /bin/bash  813389572d7f569e7b3705070033b43cf9e42ed9d304e03662c92533838ddec3     [root@localhost ~]# docker ps  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 ~]# docker exec -ti my-test /bin/bash  [root@813389572d7f /]# df -HT  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 ~]# dmsetup table /dev/mapper/docker-8:3-4850707-813389572d7f569e7b3705070033b43cf9e42ed9d304e03662c92533838ddec3  0 20971520 thin 253:0 13     计算20G所需扇区数目  [root@localhost ~]# echo $((20*1024*1024*1024/512))  41943040     精简快照目标的一个神奇的特点是它不会限制卷的大小。当创建它的时候,一个精简的卷使用0个块,当开始往块里面写入的时候,它们会从共用的块池中进行分配。  可以写0个块,或者是10亿个块,这个和精简快照目标没关系。文件系统的大小只和Device Mapper表有关系。  只需要装载一个新的表,这个完全和之前的是一样的,但是有更多的扇区。仅此而已。       将新的扇区大小写入,注意只是改变旧表中的第二个数字20971520的数字,其他数字不变!  [root@localhost ~]# echo 0 41943040 thin 253:0 13 | dmsetup load /dev/mapper/docker-8:3-4850707-813389572d7f569e7b3705070033b43cf9e42ed9d304e03662c92533838ddec3     将修改后的容器存储文件激活  [root@localhost ~]# dmsetup resume /dev/mapper/docker-8:3-4850707-813389572d7f569e7b3705070033b43cf9e42ed9d304e03662c92533838ddec3     重新查看文件信息  [root@localhost ~]# dmsetup table /dev/mapper/docker-8:3-4850707-813389572d7f569e7b3705070033b43cf9e42ed9d304e03662c92533838ddec3  0 41943040 thin 253:0 13     更改文件系统大小,使变更生。  [root@localhost ~]# resize2fs /dev/mapper/docker-8:3-4850707-813389572d7f569e7b3705070033b43cf9e42ed9d304e03662c92533838ddec3  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 ~]# docker exec -ti my-test /bin/bash  [root@813389572d7f /]# df -hT  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 ~]# docker start my-test  #此时会报错,不要理会,执行以下操作即可  [root@localhost ~]# echo 0 41943040 thin 253:3 725 | dmsetup load /dev/mapper/docker-8:3-4850707-813389572d7f569e7b3705070033b43cf9e42ed9d304e03662c92533838ddec3  [root@localhost ~]# dmsetup resume /dev/mapper/docker-8:3-4850707-813389572d7f569e7b3705070033b43cf9e42ed9d304e03662c92533838ddec3  ----------------------------------------------------------------------------------------------------------------------------------   |