首頁 > 其他外部套件 > docker volume

Docker Volume 命令指南

Docker 卷是持久保存 Docker 容器產生和使用之資料的推薦機制。即使容器被刪除,儲存在卷中的資料也會保留,讓您能夠在不丟失資料的情況下管理容器。本指南涵蓋如何建立、管理和刪除 Docker 卷。

Docker 卷概述

Docker 卷是掛載到主機檔案系統中特定路徑的目錄或檔案。它允許資料獨立於容器的生命週期進行管理,這比將資料與容器映像檔捆綁在一起更靈活和高效。卷也可以由多個容器同時共享。

為什麼需要卷

容器本質上是短暫的。這意味著當容器被刪除時,其中儲存的所有資料也會隨之消失。為了永久保留重要的資料,例如資料庫、日誌檔案或使用者上傳的檔案,您必須使用卷。卷解決了這個問題,增強了基於容器的應用程式的穩定性和靈活性。

卷的優點

使用 Docker 卷的主要優點如下:

  • 資料持久性: 即使容器被刪除,資料也會保留。
  • 資料共享: 多個容器可以共享同一個卷來存取資料。
  • 性能: 它可以提供比綁定掛載更好的 I/O 效能。
  • 可移植性: 卷不包含在 Dockerfile 中,因此可以保持映像檔更輕。
  • 備份/還原: 卷可以輕鬆地進行備份和還原。

主要 Docker Volume 命令

讓我們探索各種命令以有效管理 Docker 卷。嘗試組合每個選項來建立、檢查、刪除卷並將其連接到容器。

1. 建立和列出卷

2. 刪除卷

3. 將卷連接到容器

生成的命令:

請試著組合命令。

這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。

`docker volume` 執行命令。

請將上述選項組合在一起,與 AI 一同虛擬執行命令。

卷的類型

在 Docker 中,主要有兩種掛載類型用於將資料連接到容器:卷(Volumes)和綁定掛載(Bind mounts)。每種都有不同的使用案例和特徵。

1. 卷 (Volumes)

這是持久保存 Docker 資料的首選方法。它儲存在由 Docker 管理的主機檔案系統的特定區域。

  • 建立和管理: 它們透過 Docker CLI 使用 `docker volume` 命令建立和管理。
  • 位置: 儲存在主機的 `/var/lib/docker/volumes/` 路徑中。不建議使用者直接存取此內部路徑。
  • 特徵: 它們獨立於容器的生命週期,並且可以由多個容器共享。它們提供了性能優勢,尤其是在 Docker Desktop 中。

2. 綁定掛載 (Bind mounts)

主機檔案系統中的任何位置都可以掛載到容器內部。這對於直接存取主機檔案系統結構很有用。

  • 建立和管理: 它們直接依賴於主機的檔案系統,並且不受 Docker 的明確管理。
  • 位置: 主機檔案系統中的任何目錄或檔案都可以掛載到容器中。
  • 特徵: 它們主要用於開發環境,將原始碼掛載到容器中以即時反映更改,或者當容器需要使用主機上的特定設定檔時。

使用範例

透過探索各種實際應用 Docker 卷命令的場景,了解如何管理資料持久性。

建立和使用命名卷

docker volume create my_db_data
docker run -d --name my-mysql --mount source=my_db_data,target=/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mysecretpassword mysql:latest

建立一個名為 'my_db_data' 的卷,並將其掛載到 MySQL 容器的資料儲存路徑。即使容器被刪除,資料庫資料也會保留。

綁定掛載主機目錄

docker run -d --name my-nginx-dev -p 80:80 --mount type=bind,source=/path/to/my/app,target=/usr/share/nginx/html nginx:latest

將主機的當前目錄 (`/path/to/my/app`) 掛載到 Nginx 容器的 Web 服務目錄 (`/usr/share/nginx/html`),以便在主機上對檔案所做的更改會立即反映在容器中。

刪除所有未使用的卷

docker volume prune

透過刪除所有未連接到任何容器的 Docker 卷來釋放磁碟空間。將顯示一條確認訊息。

強制刪除特定卷 (警告)

docker volume rm -f old_volume

強制刪除名為 'old_volume' 的卷,無論它是否正在使用。應極其謹慎地使用,因為它可能導致資料丟失。


相同類別命令