Podman 教程

Podman 数据卷创建

上面简单介绍了什么是数据卷,以及数据卷和绑定挂载的区别。在 Podman 中,可以通过 podman volume create 命令创建数据卷。数据卷的创建是使用 Podman 持久化数据的第一步,下面我会详细介绍各种创建方式和参数。

基础语法

输入 podman volume create --help 命令,查看详细命令手册:

C:\Users\Administrator> podman volume create --help
创建一个新的数据卷

说明:
  若使用默认驱动("local"),该数据卷将在主机上的容器存储目录下的 volumes 子目录中创建。

用法:
  podman volume create [选项] [名称]

示例:
  podman volume create myvol   # 创建名为 myvol 的数据卷
  podman volume create         # 创建随机名称的数据卷
  podman volume create --label foo=bar myvol  # 创建带标签 foo=bar 的数据卷 myvol
  # 创建属主 UID 为 4321、GID 为 1234 的数据卷 myvol
  podman volume create --uid 4321 --gid 1234 myvol  

选项:
  -d, --driver string       指定数据卷驱动名称(默认值为 "local")
      --gid int             设置数据卷属主的 GID(组ID)
      --ignore              若数据卷已存在则不报错
  -l, --label stringArray   为数据卷设置元数据标签(默认值为空数组)
  -o, --opt stringArray     设置驱动专属选项(默认值为空数组)
      --uid int             设置数据卷属主的 UID(用户ID)

后续介绍如何使用该命令去创建数据卷。

基础创建方法

最基本的创建命令非常简单,直接指定卷名即可:

# 创建名为 my_volume 的数据卷
podman volume create my_volume

# 实例:
C:\Users\Administrator> podman volume create my_volume
my_volume

如果不指定卷名,Podman 会自动生成一个随机的唯一名称:

# 创建一个随机名称的数据卷
podman volume create

# 实例:
C:\Users\Administrator> podman volume create
1cbe65f784c4bb2f774e63c612f62e99d1316b27975ebda62f7040d46b964d1a

高级创建选项

指定存储驱动

Podman 默认使用 local 驱动,你也可以指定其他驱动(如 nfs, glusterfs 等):

# 使用 NFS 驱动创建数据卷
podman volume create --driver local \
  --opt type=nfs \
  --opt o=addr=192.168.1.100,rw \
  --opt device=:/nfs/share \
  nfs_volume

# 实例:
C:\Users\Administrator>podman volume create --driver local --opt type=nfs --opt o=addr=192.168.1.100,rw --opt device=:/nfs/share nfs_volume
nfs_volume

上面命令创建一个基于 NFS 协议的 Podman 数据卷(命名为 nfs_volume),通过 local 驱动扩展实现将远程 NFS 服务器的共享目录挂载为 Podman 数据卷,容器可直接通过卷名使用该 NFS 共享存储。

NFS 是 Network File System 的缩写,中文名为网络文件系统,是一种基于 TCP/IP 协议的分布式文件共享协议,核心作用是让客户端主机通过网络,像访问本地文件系统一样读写远程服务器上的文件。

添加标签(Labels)

在生产环境中,管理的容器较多,书卷也比较多,此时我们可以为数据卷添加标签,方便分类和管理:

# 创建带标签的数据卷
podman volume create \
  --label environment=production \
  --label app=database \
  --label version=1.0 \
  db_volume

# 实例:
C:\Users\Administrator> podman volume create --label environment=production --label app=database --label version=1.0 db_volume
db_volume

上面命令创建一个名为 db_volume 的 Podman 数据卷,并为该卷添加三组自定义标签(元数据),用于标识卷的用途、环境、版本等信息,方便后续管理和筛选。

设置权限

在创建数据卷的时候,我们可以指定数据卷的用户和组权限:

# 创建指定 UID/GID 权限的数据卷
podman volume create \
  --opt o=uid=1000,gid=1000 \
  user_volume

# 实例:
C:\Users\Administrator> podman volume create --opt o=uid=1000,gid=1000 user_volume
user_volume

上面命令创建一个名为 user_volume 的 Podman 数据卷(默认 local 驱动),并通过挂载选项指定该卷的属主 UID 为 1000、GID 为 1000,解决容器内非 root 用户访问卷时的权限问题(尤其是 rootless 模式下)。

总结

Podman 数据卷创建的关键点:

  1. 基础创建:使用 podman volume create [NAME] 即可创建基本数据卷

  2. 高级配置:通过 --driver, --opt, --label 等参数可以实现复杂配置

  3. 权限管理:可以通过 --opt o=uid=xxx,gid=xxx 设置数据卷权限

  

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
其他应用
公众号