3 回答

TA貢獻1829條經驗 獲得超7個贊
通過命令可以觀察到/var/lib/Docker目錄很大,我的主機只有20G,這個目錄占了18G;原因是devicemapper的空間設的太大,通過docker info打印的Data Space Total參數可以看到,默認是107.4G。
思路如下:
備份當前容器、鏡像;
刪除/var/lib/docker目錄;
使用dd命令重設大??;
恢復容器、鏡像;
工具:
需要額外空間保存備份文件,可以掛載一個u盤或者云盤。
docker save 可以導出鏡像 tar文件;
docker export 可以導出容器 tar文件;
備份好之后停止docker
[html] view plain copy
# /etc/init.d/docker stop
刪除/var/lib/docker目錄;
[html] view plain copy
# mkdir -p /var/lib/docker/devicemapper/devicemapper/data
# dd if=/dev/zero of=/var/lib/docker/devicemapper/devicemapper/data bs=1M count=0 seek=8192
建立的文件最大為 1M * 8192 = 8G
啟動docker
[html] view plain copy
# /etc/init.d/docker start
使用docker info看看Data Space Total,檢查是否設置成功
docker load 可以導入鏡像tar文件為 鏡像
注意load用法為:docker load image1:new<image1.tar
docker import 可以導入容器tar文件為 鏡像
注意import用法為: cat container1.tar |docker import - container1:new

TA貢獻1825條經驗 獲得超6個贊
如果你的docker-registry是在container中,那么是無法使用命令刪除image的,只能手動直接刪除image文件。如果不是,那么可以使用docker rmi 鏡像名 來進行刪除

TA貢獻1828條經驗 獲得超3個贊
Docker時代的日志,步子并未跨得太大,畢竟安全第一。然而,不可否認發展的時代總有讓你意想不到的亮點。
如果你是容器中的應用,哪怕你是始亂終棄,抑或是灑脫不羈,Docker容器都會記錄下你的點點滴滴,只要你對著標準輸出標準錯誤說一句action。(Docker容器所有的標準輸出標準錯誤都會被Docker Daemon接管)
如果你是個閱盡人間無數,拳打南山,腳踢北海,四海流竄的Docker容器,你在北京的One Night,興許第二天在上海的你早已酒醒如初;第三天出差杭州的你,更是不記得昨天在上海住的是幾星級賓館。(Docker容器本身理應盡量無狀態,容器內應用持久化的日志則有狀態,頻繁遷移不宜容器日志管理)。
如果你有一部腎機,如果你繼續支持大表姐。Docker容器中的你,很容易將容器走南闖北的經歷傳至云端,以便他日傳看。(Docker容器的應用日志,如果自己發往集中的日志處理中心,則為上上策,易統一;問題是成本高,得有錢買腎機,還需統一化的標準)
添加回答
舉報