docker的volume

本文深入解析Docker中Volume的创建及使用方式,包括其与Container的关系、如何通过Docker Volume实现数据持久化,以及直接创建Volume和在创建Container时创建Volume的区别。

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

volume

看了很多介绍,也没说清楚volume和container之间的关系、创建的时候应该怎么创建。这里把弄清楚的内容说明一下。
volume的作用:将container内的目录映射到宿主机host的实际路径,这样container上修改内容直接能保存到宿主机上。同样宿主机上对该目录的修改,也能在container看到。
volume和container的关系:
创建volume之后多个container可以共用volume,也可以每个container单独使用自己的volume。所以有两种创建方法:直接使用docker volume create命令创建,或者在docker run一个容器的时候用 -v 参数来创建。
volume创建时涉及三个比较绕的内容:名称,容器内的路径,宿主机的路径。下面分别将两种创建方法时如何设置上面三项说清楚。

  1. 直接使用docker volume create创建,暂时和container无关。
xxxx@n2800:~$ docker volume create --help
Usage:  docker volume create [OPTIONS] [VOLUME]
Create a volume
Options:
  -d, --driver string   Specify volume driver name (default "local")
      --label list      Set metadata for a volume
  -o, --opt map         Set driver specific options (default map[])

可以看到,这个命令的可选项很少,至少宿主机内的路径是不可改的,只能是默认的/var/lib/docker/volume。
–driver的作用也不清楚。
–opt可以用来挂载nfs目录:
$ docker volume create --driver local
–opt type=nfs
–opt o=addr=192.168.1.1,rw
–opt device=:/path/to/dir
foo
创建一个名为test的volume,然后用docker volume inspect命令看一下。

xxxx@n2800:~$ docker volume inspect basic
[
    {
        "CreatedAt": "2020-04-26T21:01:32+08:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/basic/_data",
        "Name": "basic",
        "Scope": "local"
    }
]

发现,最想更改的Mountpoint是不能更改的,没有可选项可以操作。至少docker网站没有找到。
并且这种创建方式,没有指定container中的路径,因为和container还不想关,需要在docker run命令中使用这个volume的名称。比如针对basic这个volume,例子:
docker run -it -v basic:/mydata alpine sh

  1. 在创建container时创建volume。
    用docker run -v [host-dir]:[container-dir]:[rw|wo]在创建容器是直接创建volume
    在这里可以指定宿主机的路径。
    例子:
    docker run --name xware -v /var/lib/xware/:/data -d zwh8800/xware
    这个是一个离线迅雷的容器安装。这个时候volume的名字是自动生成的UUID。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值