2017-02-09 23 views
0

我的團隊和我正在使用的碼頭經常耗盡空間。通常我們通過刪除懸掛圖像來解決這個問題。但現在有5個正在運行的包含7個圖像的容器,並且內存已滿。即使日誌文件也不能寫出它的輸出。正如我描述的那樣,有15個圖像(碼頭圖像 - 所有),但是當我輸入docker info它說有132個圖像。Docker:一些幽靈圖片搞亂了內存

[email protected]:/var/lib/docker# docker info 
Containers: 10 
Images: 132 
Storage Driver: aufs 
Root Dir: /var/lib/docker/aufs 
Backing Filesystem: extfs 
Dirs: 154 
Dirperm1 Supported: true 
Execution Driver: native-0.2 
Logging Driver: json-file 
Kernel Version: 3.16.0-30-generic 
Operating System: Ubuntu 14.04.3 LTS 
CPUs: 2 
Total Memory: 15.67 GiB 
Name: dockersrv 
ID: `` 
WARNING: No swap limit support 

據我記憶,有人管理刪除註冊表容器,我們創建了一個新的。我的想法是,所有這些圖像都與舊的註冊表相關聯。因此,任何想法如何刪除它們並釋放一些空間。任何其他有關如何增加其內存和刪除懸掛圖像和舊容器的建議都將非常感謝。

+0

'泊塢窗圖像-a'會顯示您的所有圖像。但是,這也會包含您現有圖像的子圖像。使用'docker rmi $'(docker images | grep「^ 」| awk「{print $ 3}」)'您可以刪除標記爲的所有未使用的圖像,但我認爲您已經這樣做了。 – lvthillo

+0

當你用'du -sh'探索一下。 '/ var/lib/docker /'裏面的哪個文件夾包含很多千兆字節?大多數時間懸掛卷都會引起問題。 – lvthillo

+0

整個目錄是60個演出,其中15個是aufs和40個卷目錄文件夾 – Wosh

回答

1

docker images -a將顯示您的所有圖像。但是,這也會包含您現有圖像的子圖像。

「清理」您的碼頭環境的第一步是刪除當您執行docker ps -a時顯示的已停止的碼頭集裝箱。只要存在圖像(容器)的實例,就不能刪除泊塢窗圖像。即使它不再運行。

docker rm -v `docker ps -a` 

刪除停止容器後你能刪除未使用的圖像,例如:

docker images -q |xargs docker rmi 

正如你所看到的,有多種方式/命令來刪除您的容器和圖像。 -v選項(刪除容器時使用)將刪除也是重要部分的容器體積。

碼頭卷存儲在/var/lib/docker/volumes中,其中包含容器的內容。在問題是關於舊的註冊表被刪除的一些問題。檢查註冊表的卷是否也被刪除非常重要。

在泊塢窗的新版本就可以刪除與懸掛卷:

docker volume rm `docker volume ls -q -f dangling=true` 

你也可以刪除正確的文件夾+重啓泊塢窗。

sudo rm -r /var/lib/docker/volumes/the-specific-volume