Skip to content

Docker Volume

Docker Volume

查看容器存储卷挂载情况使用:docker inspect -f 【【.Mounts】】 ID

Volume 数据共享

容器busybox2共享使用busybox2的数据卷

Terminal window
docker create --name busybox1 -v /data/test1:/data/test1 busybox
docker run -itd --name busybox2 --volumes-from busybox1 busybox

可以挂载多个共享卷,使用多个--volumes-from参数即可.

Volume 数据备份与恢复

:information_source:实用性不高。。。

备份:

Terminal window
docker run --rm --volumes-from busybox1 -v $(pwd):/backup busybox \
tar cvf /backup/backup.tar /data/test1/

恢复:

Terminal window
docker run -itd -v --name busybox3 /data/ busybox /bin/sh
docker run --volumes-from busybox1 -v /data/backup/:/backup busybox tar xf /backup/backup.tar

Volume 使用外部存储(NFS)

简单配置 NFS 服务器(172.16.1.128):

Terminal window
yum install nfs-utils rpcbind -y
mkdir -p /data/nfs/docker
echo "/data/nfs *(rw,no_root_squash,sync)">>/etc/exports
exportfs -r
systemctl start rpcbind nfs-server
# 查看 NFS 状态
showmount -e localhost

客户端(也就是容器端):

Terminal window
# 确保主机安装了 nfs 的客户端工具
yum install -y nfs-utils rpcbind
# 创建 NFS 挂载卷
docker volume create --driver local \
--opt type=nfs \
--opt o=addr=172.16.1.128,rw \
--opt device=:/data/nfs \
volume-nfs

查看并使用 NFS 外部存储:

Terminal window
# 查看
docker volume ls
docker volume inspect volume-nfs
# 使用 NFS
docker run -itd --name busybox4 -v volume-nfs:/nfs busybox
# 查看容器挂载情况
docker inspect -f 【【.Mounts】】 busybox4

删除挂载卷:

Terminal window
docker rm -f -v volume-nfs
# 或者
docker volume rm volume-nfs