使用Docker卷
Docker卷是可掛載到Docker容器的檔案系統。它們有助於儲存資料,並且獨立於容器的生命週期。Docker卷的主要優點之一是它允許開發者備份資料,並允許在Docker容器之間輕鬆共享檔案系統。我們在啟動Docker容器時可以輕鬆掛載卷。也可以將同一個卷掛載到不同的容器,這允許在它們之間輕鬆共享資料,這可以透過使用簡單的命令和標誌輕鬆實現。
在本文中,我們將討論如何使用命令建立、列出、檢查、掛載和刪除Docker卷。
建立Docker卷
您可以使用create命令建立Docker卷。執行該命令後,Docker會在本地機器上為卷建立一個特定目錄。此目錄位於/var/lib/docker/volume路徑中。
建立Docker卷的命令是:
sudo docker volume create <volume_name>
例如,如果您想建立一個名為myVolume的卷,您可以使用以下命令:
sudo docker volume create myVolume.
列出所有Docker卷
既然您已經建立了一個Docker卷,如果您想列出所有現有的Docker卷,您可以使用以下命令:
sudo docker volume list
執行上述命令後,將顯示一個列表,其中包含所有現有卷的驅動程式名稱和卷名稱。
檢查Docker卷
要檢查特定的Docker卷,您可以使用Docker inspect命令。它將列出有關Docker卷的所有詳細資訊,包括建立日期、掛載點、驅動程式名稱、卷名稱等。
檢查Docker卷的命令是:
sudo docker volume inspect <volume_name>
掛載Docker卷
執行Docker run命令時,您可以使用--mount標誌輕鬆地將Docker卷掛載到Docker容器。您還可以將同一個卷掛載到多個Docker容器,所有容器都將共享對該卷的訪問許可權。此命令如下所示:
sudo docker run −−mount source=<name of volume>,destination=<path of a directory in container> <image_name>
例如,如果您想將名為myVolume的卷掛載到ubuntu容器的/usr/src/app/位置,您可以使用以下命令:
sudo docker run −it −−mount source=myVolume,destination=/usr/src/app/ ubuntu
這將開啟一個掛載了指定位置卷的ubuntu bash。您可以透過進入容器內的指定位置來驗證這一點。
刪除Docker卷
要刪除Docker卷,您需要確保該卷此時未被使用。如果容器正在執行並掛載了該卷,則必須先停止容器才能刪除掛載的卷。停止容器後,您可以使用以下命令刪除卷:
sudo docker rm <name of volume>
要一次刪除所有卷,您需要確保沒有卷正在使用,然後使用以下命令:
sudo docker volume prune
與多個Docker容器共享Docker卷
假設您想與多個Docker容器共享一些檔案。在這種情況下,您可以將檔案放入Docker卷中,將該卷掛載到多個Docker容器中,並獲得對該卷的共享訪問許可權。讓我們討論如何做到這一點。
首先使用volume create命令建立一個卷,並將該卷掛載到特定的Docker容器。
例如:
sudo docker volume create myVolume
sudo docker run −it −−name=container1 −−mount source=myVolume,destination=/app ubuntu
以上兩個命令將建立一個名為myVolume的Docker卷,並將此卷掛載到名為container1的ubuntu映象容器的/app位置。這還將開啟該特定容器的bash。
在bash中,您可以看到在那裡建立了一個名為/app的目錄。使用ls命令來執行此操作。轉到該目錄並建立一個檔案,然後退出bash。您可以使用以下命令:
ls cd app touch tutorialspoint.txt exit
之後,建立一個新的容器並將同一個卷掛載到該容器中。您可以使用以下命令:
sudo docker run −it −−name=container2 −−mount source=myVolume,destination=/app ubuntu
這將建立一個名為container2的第二個容器,並將名為myVolume的卷掛載到ubuntu映象的/app位置。您可以使用ls命令來驗證這一點。進入/app目錄後,您將看到在container1中建立的同一個tutorialspoint.txt檔案。如果您在檔案中進行任何更改,它也會反映在另一個容器中。
總而言之,在本文中,我們看到了建立、檢查、列出、刪除Docker卷的所有基本命令。我們還看到了如何透過將同一個卷掛載到不同的Docker容器來在多個Docker容器之間共享檔案。