CodeGym /Adesua ahorow /Docker SELF /創建和管理卷

創建和管理卷

Docker SELF
等級 19 , 課堂 1
開放

2.1 基本指令 docker volume

在 Docker 中,volumes 提供了容器資料的長期存儲,並讓我們更容易管理和隔離資料。docker volume 指令提供了一組工具,能夠用於創建、管理和刪除 volumes。今天的課程裡,我們會一起來看看如何使用 docker volume 指令來高效管理 Docker 中的 volumes。

docker volume 的常用指令:

  1. docker volume create
  2. docker volume ls
  3. docker volume inspect
  4. docker volume rm
  5. docker volume prune

2.2 創建卷: docker volume create

指令 docker volume create 用於創建新的卷。預設情況下,Docker 會在主機上的標準位置創建卷,但你也可以指定不同的參數來配置卷。

簡單創建卷的例子

這個例子會創建一個名為 my_volume 的卷。

Terminal

docker volume create my_volume

創建帶有設定的卷

你可以指定 driver 和參數來創建具有特定屬性的卷。

Terminal

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 顯示主機上創建的所有卷的列表。

Terminal

docker volume ls

輸出會包含所有現有卷的信息:

Terminal

DRIVER    VOLUME NAME
local     my_volume
local     my_custom_volume

2.4 有關卷的信息:docker volume inspect

docker volume inspect指令提供有關特定卷的詳細資訊,包括它的位置、參數和使用情況。

Terminal

docker volume inspect my_volume

指令的輸出將包含以 JSON 格式的信息:

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 會拋出錯誤,提示該卷無法刪除。

Terminal

docker volume rm my_volume

清理未使用的卷:docker volume prune

指令 docker volume prune 刪除所有未使用的卷,以釋放磁碟空間。

清理未使用的卷

執行該指令後,Docker 會請求確認,然後才能刪除所有未使用的卷。

Terminal

docker volume prune

2.6 實際應用命令的範例

範例 1: 在容器中創建和使用卷

創建卷:

Terminal

docker volume create app_data

使用卷啟動容器:

Terminal

docker run -d --name my_app -v app_data:/usr/share/nginx/html nginx

在這個範例中,卷 app_data 被掛載到容器 nginx 的目錄 /usr/share/nginx/html

範例 2: 查看卷的資訊

創建卷:

Terminal

docker volume create logs_data

使用卷啟動容器:

Terminal

docker run -d --name log_app -v logs_data:/var/log/app busybox

查看卷的資訊:

Terminal

docker volume inspect logs_data

範例 3: 刪除和清理卷

創建和使用卷:

Terminal

docker volume create temp_data

docker run -d --name temp_app -v temp_data:/tmp busybox

停止並刪除容器:

Terminal

docker stop temp_app

docker rm temp_app

刪除卷:

Terminal

docker volume rm temp_data

清理所有未使用的卷:

Terminal

docker volume prune
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION