2.1 基本指令 docker volume
在 Docker 中,volumes 提供了容器資料的長期存儲,並讓我們更容易管理和隔離資料。docker volume
指令提供了一組工具,能夠用於創建、管理和刪除 volumes。今天的課程裡,我們會一起來看看如何使用 docker volume
指令來高效管理 Docker 中的 volumes。
docker volume 的常用指令:
docker volume create
docker volume ls
docker volume inspect
docker volume rm
docker volume prune
2.2 創建卷: docker volume create
指令 docker volume create
用於創建新的卷。預設情況下,Docker 會在主機上的標準位置創建卷,但你也可以指定不同的參數來配置卷。
簡單創建卷的例子
這個例子會創建一個名為 my_volume
的卷。
docker volume create my_volume
創建帶有設定的卷
你可以指定 driver 和參數來創建具有特定屬性的卷。
docker volume create --driver local --opt o=uid=1000 --opt o=gid=1000 --opt type=tmpfs --opt
device=tmpfs my_custom_volume
我們稍後會討論這些參數,目前可以不用太在意它們。
2.3 卷列表:docker volume ls
命令 docker volume ls
顯示主機上創建的所有卷的列表。
docker volume ls
輸出會包含所有現有卷的信息:
DRIVER VOLUME NAME
local my_volume
local my_custom_volume
2.4 有關卷的信息:docker volume inspect
docker volume inspect
指令提供有關特定卷的詳細資訊,包括它的位置、參數和使用情況。
docker volume inspect my_volume
指令的輸出將包含以 JSON 格式的信息:
[
{
"CreatedAt": "2023-07-26T12:34:56Z",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/my_volume/_data",
"Name": "my_volume",
"Options": {},
"Scope": "local"
}
]
2.5 刪除卷:docker volume rm
指令 docker volume rm
用於刪除卷。在刪除前,務必確認該卷未被容器使用。
刪除卷
如果卷正在被使用,Docker 會拋出錯誤,提示該卷無法刪除。
docker volume rm my_volume
清理未使用的卷:docker volume prune
指令 docker volume prune
刪除所有未使用的卷,以釋放磁碟空間。
清理未使用的卷
執行該指令後,Docker 會請求確認,然後才能刪除所有未使用的卷。
docker volume prune
2.6 實際應用命令的範例
範例 1: 在容器中創建和使用卷
創建卷:
docker volume create app_data
使用卷啟動容器:
docker run -d --name my_app -v app_data:/usr/share/nginx/html nginx
在這個範例中,卷 app_data
被掛載到容器 nginx
的目錄 /usr/share/nginx/html
。
範例 2: 查看卷的資訊
創建卷:
docker volume create logs_data
使用卷啟動容器:
docker run -d --name log_app -v logs_data:/var/log/app busybox
查看卷的資訊:
docker volume inspect logs_data
範例 3: 刪除和清理卷
創建和使用卷:
docker volume create temp_data
docker run -d --name temp_app -v temp_data:/tmp busybox
停止並刪除容器:
docker stop temp_app
docker rm temp_app
刪除卷:
docker volume rm temp_data
清理所有未使用的卷:
docker volume prune
GO TO FULL VERSION