CodeGym /课程 /Docker SELF /创建和管理卷

创建和管理卷

Docker SELF
第 19 级 , 课程 1
可用

2.1 docker volume 的基本命令

Docker 中的卷 (volumes) 提供了容器数据的持久化存储,并且可以轻松管理和隔离数据。docker volume 命令提供了一套用于创建、管理和删除卷的工具。在这节课中,我们会学习如何使用 docker volume 命令高效管理 Docker 中的卷。

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

创建带有设置的卷

你可以指定驱动程序和参数,创建具有特定特性的卷。

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