Docker数据卷:多容器共享、挂载与数据卷备份

Docker 数据卷是一种专门设计的目录,能在多个容器之间共享和持久化数据。数据卷与容器是独立的,可被无限量的容器挂载。所有挂载该数据卷的容器均可读取和写入其中的数据。

创建与挂载数据卷

创建数据卷的命令如下:

docker volume create [数据卷名称]

将数据卷挂载到容器的命令如下:

docker run -v [数据卷名称]:[容器内路径] -it [容器名称]

在上述命令中,“[数据卷名称]” 是你创建的数据卷的名称,“[容器内路径]” 是你希望在容器内挂载数据卷的路径,“[容器名称]” 是你将要运行的容器的名称。

数据卷的默认存储位置

Docker 数据卷位于 Docker 的数据目录下的volumes子目录中。对于Linux系统而言,默认的 Docker 数据目录通常是 /var/lib/docker/,从而数据卷就会创建在 /var/lib/docker/volumes/ 目录下。

在宿主机上指定数据卷的目录

若你希望在宿主机上指定数据卷的目录,可使用 Docker 的绑定挂载(bind mount)功能。通过绑定挂载,可将宿主机上的任意目录挂载到容器内部。

docker run -v [宿主机路径]:[容器内路径] -it [容器名称]

使多个容器挂载同一数据卷

你创建的数据卷可被多个容器同时挂载。这是 Docker 数据卷的一项核心特性,以此实现了数据在容器间的共享和重用。

docker run -v [数据卷名称]:[容器1内路径] -it [容器1名称]
docker run -v [数据卷名称]:[容器2内路径] -it [容器2名称]

挂载另一容器的数据卷

若你希望在一个容器内挂载另一个容器的数据卷,可使用 --volumes-from 参数。

docker run --volumes-from [容器名称] -d [镜像名称]

Docker数据卷的备份与恢复

备份数据

docker run  --volumes-from [容器名称] -v $(pwd):/backup centos tar czvf /backup/backup.tar [容器数据卷]

例如:

docker run --volumes-from data-volume2  -v  /root/backup:/backup --name datavolume-copy centos tar zcvf /backup/data-volume2.tar.gz /datavolume6

恢复数据

docker run --volumes-from [容器名称] -v $(pwd):/backup centos tar xzvf /backup/backup.tar.gz [容器数据卷]

例如:

docker exec -it data-volume2 /bin/bash
cd /datavolume6
rm -rf lucky.txt

docker run --volumes-from data-volume2 -v /root/backup/:/backup centos tar zxvf /backup/data-volume2.tar.gz -C /datavolume6

docker exec -it data-volum2 /bin/bash
cd /datavolum6

在这个示例中,你可以看到恢复后的数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值