欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > Docker数据卷挂载

Docker数据卷挂载

2025/5/7 19:07:56 来源:https://blog.csdn.net/2301_78530830/article/details/146041917  浏览:    关键词:Docker数据卷挂载

一。bind mount数据卷的挂载(用主机的有内容文件挂载于容器空文件)

简单的挂载方式:docker run -it --rm --name test1 -v /lee:/data1:rw -v /etc/passwd:/data2/passwd busybox(-v表挂载,将主机的/lee目录挂载于容器的data1目录,并且设置rm已读模式)

二。数据卷的docker managed(使用空文件去指定容器的有内容文件)

1.bind mount必须指定host文件系统路径,限制了移植性

2.docker managed volume不需要指定mount源,docker自动为容器创建数据卷目录

3.默认创建的数据卷目录都在/var/lib/docker/volumes中

4.如果挂载时指定容器内已有目录,原有数据会被复制到/var/lib/docker/volume

5.docker清理卷轴的方法:docker volume prune

mysql数据卷的挂载命令:

1.创建本地挂载目录:docker volume create mysqldate(该目录会被存储于/var/lib/docker/volume内)

2.内容的改在:docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=lee -v mysqldate:/var/lib/mysql mysql:5.7

3.查看容器挂载点:dockers inspect mysql

注释:容器内的mysql信息保存于主机的/var/lib/docker/volumes/mysqldate/_date内,如果将mysql容器删除的话,内容依然存在

4.查看所有的容器挂载内容:docker volume ls

5.删除单个挂载点:docker volume rm mysqldate

6.删除所有挂载点:docker volume prune(谨慎使用)

三。bind mount和docker managed volume的对比

四。备份与迁移数据卷:

1.数据迁移

docker run -it --volumes-from mysql --rm --name test1 busybox 
注释:--volumes-from去指向数据容器的名称,数据会被存在于数据容器的挂载点上

2.数据备份

docker volume create leevol1:创建docker卷

mkdir data1:创建目录

 tar zcf data1.tar.gz data1:对于data1进行打包,外主机打包内容

 docker run -it --rm --name test -v leevol1:/data1 -v `pwd`:/backup busybox /bin/sh -c "tar zxf /backup/data1.tar.gz;/bin/sh"(将leevol1挂载容器data1,将含有压缩包的目录挂载到容器的backup,它解包的是挂载到容器内/backup目录下的data1.tar.gz文件,容器内进行解包

leevol1 是一个 Docker 命名数据卷的名称。如果该数据卷不存在,Docker 会自动创建它。

/data1 是容器内的挂载点,意味着将宿主机上的 leevol1 数据卷挂载到容器内的 /data1 目录。这样,容器内对 /data1 目录的读写操作实际上是在操作宿主机上的数据卷。

pwd 是一个反引号包裹的命令,在 Linux 中,反引号用于执行命令并将其输出作为当前命令的一部分。pwd 命令会输出当前工作目录的绝对路径,所以这里是将宿主机的当前工作目录挂载到容器内的 /backup 目录。这使得容器可以访问宿主机当前目录下的文件,例如后续要解压的 data1.tar.gz 文件。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词