docker数据卷的使用

本文详细介绍了Docker数据卷的产生背景、使用方法,包括创建、挂载、共享、删除以及备份和迁移。数据卷解决了容器数据持久化问题,允许容器间数据共享和配置文件持久化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、数据卷产生背景

Docker的镜像是由一系列的只读层组合而来,当启动一个容器时,Docker加载镜像的所有只读层,并在最上层加入一个读写层。这个设计使得Docker可以提高镜像构建、存储和分发的效率,节省了时间和存储空间,然而也存在一些问题:

  • 容器中的文件在宿主机上存在形式复杂,不能在宿主机上很方便地对容器中的文件进行访问。
  • 多个容器之间的数据无法共享
  • 当删除容器时,容器产生的数据将丢失。

为了解决这些问题,Docker引入了数据卷(volume)机制。Volume 是存在于一个或多个容器中的特定文件或文件夹,这个目录以独立于联合文件系统的形式在宿主机中存在,并为数据的共享和持久化提供便利。

  • volume 在容器创建时就会初始化,在容器运行时就可以使用其中的文件。
  • volume 能在不同的容器之间共享和重用。
  • 对volume中数据的操作会马上生效。
  • 对volume中数据的操作不会影响镜像本身。
  • volume的生存周期独立于容器的生命周期,即使删除容器,volume仍然会存在,没有任何容器使用的volume也不会被Docker删除。

2、数据卷的使用

Usage:  docker volume COMMAND

Manage volumes

Commands:
  create      Create a volume
  inspect     Display detailed information on one or more volumes
  ls          List volumes
  prune       Remove all unused local volumes
  rm          Remove one or more volumes

2.1、创建数据卷

创建一个名为 vol_simple的存储卷:

docker volume create --name vol_simple

查看数据卷的信息:

docker volume inspect vol_simple

示例:

king@king-server:~$ docker volume inspect vol_simple 
[
    {
   
        "CreatedAt": "2024-01-27T11:37:11Z",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/vol_simple/_data",
        "Name": "vol_simple",
        "Options": null,
        "Scope": "local"
    }
]

Docker run 和 docker create 通过指定-v参数 可以为容器挂载一个数据卷。

#没有指定volume卷,只指定了容器中的挂载点/data 
docker run -d -it -v /data ubuntu /bin/bash 
# 查看随机创建的volume位置,查看mounts的内容 
docker inspect {
   ID}
# 创建一个指定名字的volume ,并
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值