docker中volume 与 -v 的区别

本文介绍了Docker中volume和-v在数据持久化方面的相同点和不同点。两者都能避免容器销毁导致数据丢失,但使用场景和挂载方式有别。volume常用于Dockerfile,指定容器内的路径,宿主机路径默认在/var/lib/docker/volumes/下创建匿名卷。而-v在docker run时使用,明确指定宿主机路径与容器路径的绑定。在Docker run中,volume与-v的使用可能会引起混淆,需要谨慎处理。
摘要由CSDN通过智能技术生成

相同之处
都是为了将数据持久化,即当容器销毁时,数据还能永远的保存下来,不至于跟着容器一起销毁。

不同点

一 场景不同
1 volume
volume常用在Dockerfile 时使用 ,在Dockerfile 中volume后面是容器的目录,即路径。

例: VOLUME /data 这里就是绑定在容器的/data 路径下。

2 -v
-v 是在docker run -v 【宿主机的路径:容器路径】。 时进行数据卷的挂载 这里的-v 是docker run 的一个参数 。
例:docker run -v /var/run/docker.sock:/var/run/docker.sock
就是将宿主机的/var/run/docker.sock 挂载在容器的/var/run/docker.sock上。

二 挂载的卷方式

  1. volume
    还是继续上一个例子讲 在Dockerfile中 volume后面是容器的路径 那宿主机的路径就是默认在/var/lib/docker/volumes/ 目录下的,自动生成一个匿名卷 ;其大概最终生成的在宿主机卷是 /var/lib/docker/volumes/fd74a83eafc1042d34e861ae9d984469c0321bdd3be001c37578e3f3e9c07e0a/_data 即宿主机的这个路径与容器的/data、进行绑定 挂载

  2. -v
    还是继续上一个例子 , 很明显可以看出, 即可能显示的指定宿主机的卷与容器进行绑定 ;上一个例子中就是宿主机的/var/run/docker.sock与 容器的/var/run/docker.sock 进行显示绑定。

    <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值