公司动态

Docker数据卷创建、挂载、删除、数据共享

📅 2026/7/30 17:28:16
Docker数据卷创建、挂载、删除、数据共享
在创建 docker 的镜像和容器后还需要对容器进行数据管理以便能与主机、不同容器之间进行交换数据。本文主要介绍如何通过数据卷的方式实现多个容器间的数据共享和交换。了解docker数据卷docker 数据卷Data Volume是一个可供容器使用的特殊目录它将主机操作系统目录直接映射进容器类似于 Linux 的 mount 操作。数据卷可以持久化存储容器数据即使容器被删除数据仍然可以被保留数据卷可以实现数据持久化、数据共享和数据迁移等功能。数据卷的生命周期独立于容器即使容器被删除数据卷仍然存在。创建数据卷 docker volume createdocker volume create 命令用于创建docker数据卷。创建数据卷之后默认会存放在目录/var/lib/docker/volumes/数据卷名称/命令格式dockervolume create[OPTIONS][VOLUME]# OPTIONS 参数# VOLUME 数据卷名称命令的常用参数有参数说明-d, --driver string指定卷驱动程序名称–label list设置卷的元数据-o, --opt map设置驱动程序特定选项命令示例# 创建数据卷dockervolume create test_volume# 查看数据卷位置ls-la/var/lib/docker/volumes/# 可能会返回以下内容其中包含数据卷 test_volumebrw-------1root root253,1Jan413:53 backingFsBlockDev -rw-------1root root32768Jan413:53 metadata.db drwx-----x3root root4096Jan413:53 test_volume挂载数据卷 docker run --mountdocker run 命令中的 --mount 参数用于在运行容器时挂载卷通过该参数可以将宿主机上的目录或文件挂载到容器内部实现数据的共享和持久化。命令格式dockerrun--mounttypetype_option,sourcesource_path,targettarget_path[OPTIONS]IMAGE[COMMAND][ARG...]# type 类型参数# source_path是宿主机上的路径# target_path是容器内的路径其中 -mount 选项的 type 参数支持三种类型的数据卷参数说明typevolume普通数据卷默认类型映射到主机/var/lib/docker/volumes路径下。typebind绑定挂载将宿主机上的目录或文件直接挂载到容器内部。typetmpfstmpfs挂载将容器内的目录挂载为tmpfs用于存储临时数据。命令示例# 将宿主机/home/user/data目录挂载到容器内的/data目录dockerrun--mounttypebind,source/home/data,target/data image_name挂载数据卷 docker run -v通过 docker run 命令的 -v 或 --volume 选项也可以将宿主机上的目录或文件挂载到容器内部从而实现数据的共享和持久化。# 将宿主机/home/user/data目录挂载到容器内的/data目录dockerrun-v/home/data:/data image_name上述命令将在容器内部创建一个/data目录并将宿主机上的/home/data目录挂载到该目录。容器内的任何数据变化都会反映到宿主机上的相应目录中从而实现数据的持久化。查看数据卷 docker volume lsdocker volume ls 命令用于查看 docker 数据卷该命令将列出所有可用的数据卷。命令示例# 查看数据卷dockervolumels# 可能返回以下内容包含示例创建的 test_volumeDRIVER VOLUME NAMElocaltest_volume数据卷详情 docker volume inspectdocker volume inspect 命令用于查看数据卷的详细信息默认情况下这些信息将以JSON格式呈现。命令格式及示例# 命令格式dockervolume inspect 数据卷名称# 命令示例dockervolume inspect test_volume# 可能返回以下内容[{CreatedAt:2024-01-04T13:53:0408:00,Driver:local,Labels:null,Mountpoint:/var/lib/docker/volumes/test_volume/_data,Name:test_volume,Options:null,Scope:local}]删除数据卷 docker volume rmdocker volume rm命令用于删除docker数据卷需确保没有任何容器正在使用该数据卷否则可能无法删除。命令格式及示例# 命令格式dockervolumerm数据卷名称# 命令示例dockervolumermtest_volume删除操作不可逆需谨慎处理并做好相应备份。本文同步发表于个人博客 云计算课代表更多云产品教程请访问 https://www.yiisu.vip/