關(guān)于docker動態(tài)擴(kuò)展容器空間大小

最近,感覺微服務(wù)非常流行,有能力的沒能力的反正是個架構(gòu)師都在談?wù)?,提到微服?wù),自然會關(guān)聯(lián)到現(xiàn)在最熱的虛擬化技術(shù)Docker。最近本人試著用docker去搭建一些測試環(huán)境,在docker上跑了一個oracle11g,不需要復(fù)雜的安裝過程只要下載公共鏡像就能跑起來了,實在非常方便。但好景不長,隨著數(shù)據(jù)增加,突然某一天發(fā)現(xiàn)docker start失敗了。于是查看日志,發(fā)現(xiàn)sh文件執(zhí)行失敗,空間不夠了。。。
于是就在網(wǎng)上查如何解決空間不夠問題,發(fā)現(xiàn)docker默認(rèn)只支持10g的空間,如果不夠用可以進(jìn)行動態(tài)新增,過程可歸納為幾步:
1.先找到需要新增的deviceName
2.使用dmsetup table 命令顯示出device mapper的具體信息
3.通過公式:echo $((N10241024*1024/512))算出你想擴(kuò)容到的扇區(qū)數(shù)量
4.裝載一個新的設(shè)備信息表,新的表與原表相比只修改了扇區(qū)數(shù)量
5.通過dmsetup resume激活新的設(shè)備信息表
6.啟動容器
7.xfs_growfs調(diào)整文件系統(tǒng)大小

具體命令及遇到的問題如下:

1.[root@localhost ~]# docker inspect -f '{{ .GraphDriver.Data.DeviceName }}' a0d41b4f48fb ( 此處填寫CONTAINER ID)
結(jié)果:docker-253:1-135111498-01a6b6d74f6598480f94b95e07fc166424aafec83223662d1f3f71ac65c0dcb5
說明:后面幾乎都需要用到這個設(shè)備名稱

2.[root@localhost ~]# dmsetup table dmsetup table docker-253:1-135111498-01a6b6d74f6598480f94b95e07fc166424aafec83223662d1f3f71ac65c0dcb5

結(jié)果:0 20971520 thin 253:3 16 (第二個就是扇區(qū)數(shù))

采坑標(biāo)記:當(dāng)容器在stop狀態(tài)時以上操作得不到device mapper信息,雖然由于空
間不足不能啟動成功,但需要先docker start <CONTAINER ID> 才能查找到對應(yīng)
device mapper信息。

3.[root@localhost ~]# echo $((2010241024*1024/512))
結(jié)果:41943040
說明:此處我們擴(kuò)展到20G

4.[root@localhost ~]# echo 0 41943040 thin 253:3 16 | dmsetup load docker-253:1-135111498-01a6b6d74f6598480f94b95e07fc166424aafec83223662d1f3f71ac65c0dcb5
說明:使用第三步得出的新的扇區(qū)數(shù),其它不變

5.dmsetup resume docker-253:1-135111498-01a6b6d74f6598480f94b95e07fc166424aafec83223662d1f3f71ac65c0dcb5

6.docker start a0d41b4f48fb

采坑標(biāo)記:此處如果不啟動,第7步將執(zhí)行失敗

7.xfs_growfs /dev/mapper/docker-253:1-135111498-01a6b6d74f6598480f94b95e07fc166424aafec83223662d1f3f71ac65c0dcb5

resize2fs /dev/mapper/docker-253:1-135111498-01a6b6d74f6598480f94b95e07fc166424aafec83223662d1f3f71ac65c0dcb5

resize2fs命令 針對的是ext2、ext3、ext4文件系統(tǒng)
xfs_growfs命令 針對的是xfs文件系統(tǒng)
我是使用xfs_growfs有效

恭喜!擴(kuò)容成功,現(xiàn)在你的容器已經(jīng)是20G的容量了!
雖然是擴(kuò)容成功了,不過如果你執(zhí)行了docker stop 命令,再次start,還是需要重新擴(kuò)容一次,此問題本人至今沒有解決。如果你解決了,希望分享。
以上命令也可以使用腳本的方式執(zhí)行。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Docker入門 Docker命令官方示例 [toc] 1. Docker架構(gòu) 1.1 Docker鏡像與Dock...
    CaiGuangyin閱讀 1,964評論 2 6
  • 前言 LVM 邏輯卷管理,是對磁盤分區(qū)進(jìn)行管理的一種機(jī)制,建立在硬盤和分區(qū)之上,文件系統(tǒng)之下的一個邏輯層,可以提高...
    Alliny閱讀 500評論 0 0
  • 一、目的 在使用CentOS6.3版本linux系統(tǒng)的時候,發(fā)現(xiàn)根目錄(/)的空間不是很充足,而其他目錄空間有很大...
    jadn閱讀 5,857評論 0 1
  • CentOS 7看了日志發(fā)現(xiàn)是/root只分配了1GiB大小,已接近飽和??偨Y(jié)一下步驟: 列出各分區(qū)使用情況: #...
    藍(lán)凌o_o嫣然閱讀 1,342評論 0 0
  • feisky云計算、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 4,383評論 0 5

友情鏈接更多精彩內(nèi)容