Docker 不會(huì )對你的系統進(jìn)行任何配置更改……但是它會(huì )占用大量的磁盤(pán)空間。(使用 Docker)不一會(huì )兒,當你輸入如下命令時(shí),就會(huì )返回一些可怕的使用情況統計信息:
docker system df
幸運的是,Docker 允許您從未使用的鏡像、容器以及卷中回收磁盤(pán)空間。
為了安全地刪除已停止的容器,未使用的網(wǎng)絡(luò )和懸掛的圖像,最好每隔一段時(shí)間運行以下命令:
docker system prune
更具風(fēng)險的選擇是:
docker system prune -a
這也將抹除任何與正在運行的容器無(wú)關(guān)的鏡像。這可能有一點(diǎn)極端,但是 Docker 還是會(huì )重新下載其所需的鏡像的。第一次下載會(huì )稍慢一些,但隨后會(huì )將鏡像緩存起來(lái)以備將來(lái)使用。
以下各節介紹了刪除特定項目的其他方法。
Docker 鏡像是應用程序(例如Web服務(wù),語(yǔ)言運行時(shí)或者數據管理系統)的磁盤(pán)快照。您可以通過(guò)輸入以下內容來(lái)查看所有的鏡像,不管是運行中的還是懸空的(與容器無(wú)關(guān)的鏡像):
docker image ls -a
一個(gè) Docker 鏡像可以通過(guò)輸入以下命令刪除:
docker image rm <name_or_id>
可以將任意數量的鏡像添加到此命令——用空格字符分隔它們。
Docker 容器是鏡像運行的實(shí)例,并且可以從同一容器中啟動(dòng)任意數量的容器。容器通常很小,因為它們是無(wú)狀態(tài)的,并且引用了鏡像的文件系統。通過(guò)輸入以下命令查看所有正在運行和已停止的容器:
docker container ls -a
一旦一個(gè)容器停止了,你便可以刪除它。停止容器的命令如下:
docker container stop <name_or_id>
刪除容器的命令如下:
docker container rm <name_or_id>
同樣,可以在此命令中添加任意數量的以空格分隔的容器名稱(chēng)或者 ID。
幾乎沒(méi)有必要保留已停止的容器。 可以將 --rm 選項添加到 docker run 命令中,以在容器終止后自動(dòng)刪除該容器。
容器可以連接到 Docker 管理的網(wǎng)絡(luò ),因此它們才可以相互通信。這些是不會(huì )占用太多磁盤(pán)空間的配置文件。通過(guò)輸入以下內容查看所有 Docker 網(wǎng)絡(luò ):
docker network ls
輸入下面的命令可以刪除一個(gè)或多個(gè)無(wú)用的網(wǎng)絡(luò ):
docker network rm <name_or_id>
同樣,可以在此命令中添加任意數量的以空格分隔的網(wǎng)絡(luò )名稱(chēng)或者 ID。
Docker 卷是虛擬磁盤(pán)映像。 必須將其附加到正在運行的容器,以便它可以在兩次重新啟動(dòng)之間保存文件或其他狀態(tài)信息。 卷的大小取決于使用它的應用程序,但是典型的數據庫即使在大多數情況下都是空的,也需要數百兆的空間。
通過(guò)以下命令便可查看所有 Docker 管理的磁盤(pán)卷:
docker volume ls
移除一個(gè) Docker 卷將會(huì )永遠抹除其數據!沒(méi)有回頭路!
如果您要開(kāi)發(fā)數據庫驅動(dòng)的應用程序,通??梢员A粢粋€(gè)或多個(gè)數據轉儲,這些數據轉儲可用于重新創(chuàng )建一組特定的記錄。大多數數據庫客戶(hù)端工具都提供轉儲功能,比如 Adminer 中的 Export 鏈接。
大多數數據庫系統將提供備份工具,例如 MySQL 中的 mysqldump 實(shí)用程序。 可以使用 docker exec 命令在正在運行的容器上執行這些操作。
以下 Linux / macOS 命令將在名為 mysql 的容器上運行的名為 mydb 的 MySQL 數據庫備份到名為 backup.sql 的文件中。 使用密碼為 mysecret 的 MySQL root 用戶(hù):
docker exec mysql /usr/bin/mysqldump -u root -pmysecret mydb \ > backup.sql
Windows PowerShell 的等效命令:
docker exec mysql /usr/bin/mysqldump -u root -pmysecret -r mydb | \ Set-Content backup.sql
您還可以使用 docker cp 命令將數據文件復制到正在運行的容器或從正在運行的容器復制數據文件。 這是通過(guò)源路徑和目標路徑傳遞的,容器由其 名稱(chēng)/ ID 區分,后跟冒號及其路徑,例如,
docker cp mycontainer:/some/file ./host/directory
假設您的數據是安全的,則可以通過(guò)輸入以下內容來(lái)刪除任何未使用的卷:
docker volume rm <name>
可以使用以下方法刪除所有未使用的Docker卷——當前未連接到正在運行的容器的那些卷:
docker volume prune
或者,docker volume prune -a 將全部卷刪除。 畢竟你已經(jīng)備份了,不是嗎?
可以使用單個(gè)命令清除掉每個(gè)未使用的容器,鏡像,卷和網(wǎng)絡(luò ):
docker system prune -a --volumes
如果要在沒(méi)有確認提示的情況下強制清理,可以添加 -f 。 您的系統將恢復到?jīng)]有任何 Docker 數據的原始狀態(tài)。
到此這篇關(guān)于如何完全清理你的Docker數據的文章就介紹到這了,更多相關(guān)Docker清理數據內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站