docker存储volume

#环境 centos7.4 , Docker version 17.12.0-cedocker volume创建、备份、nfs存储#docker volume数据存容器内,删容器即销毁全部数据要保留的数据(数据持久化),需存储在容器外docker volume是文件或目录,mount到docker容器中使用docker volumebind muount #挂载任意目录或文件Volumes #固定路径的目录,docker管理tmpfs mounts #存放宿主机内存中imagedocker volume 官网文档地址 https://docs.docker.com/storage/volumes/#bind muount实例 #docker挂载文件或目录到容器 #创建目录及文件mkdir -p /data/test1echo 'docker volume'>/data/test1/test.txt #创建容器,-v 挂载目录(默认读写权限)docker run -dit --name busybox1 -v /data/test1:/data/test1 busybox #查看docker exec busybox1 cat /data/test1/test.txt #修改文件后,在查看本地是否更改docker exec busybox1 echo my files>>/data/test1/test.txtdocker exec busybox1 cat /data/test1/test.txtcat /data/test1/test.txt为保证Dockerfile可移植,构建镜像不能使用bind muount#tmpfs mounts# 使用--tmpfsdocker run -dit --name tmpfs-test --tmpfs /app busybox#Volumes#不指定挂载目录,默认目录/var/lib/docker/volumes/#使用Volumes#不指定挂载目录,自动创建 volumes/<ID号>/_data/docker run -dit --name busybox2 -v /data/test busybox#在容器创建目文件docker exec busybox2 touch /data/test/test2.txt#在宿主机查看文件路径find /var/lib/docker/volumes -name test2.txtdocker inspect busybox2 |grep  Source#docker volume命令管理 #创建volumedocker volume create volume-test1 #查看参数docker inspect volume-test1 #使用volumedocker run -dit --name busybox3 -v volume-test1:/volume busybox #查看docker inspect -f {{.Mounts}} busybox3 #查看docker数据卷docker volume ls #删除没使用的数据卷(谨慎使用)docker volume pruneBind mounts和volumes都通过-v或--volume挂载,tmpfs使用--tmpfs三种都可以使用--mount挂载,格式更清晰,官方推荐使用#docker volume 数据共享挂载相同目录使用volume container#数据卷容器 volume container# --volumes-from 容器名,就会传递容器的挂载目录(volume参数传递) #创建容器busybox4(不需要启动)mkdir -p /data/test2echo 'busybox4'>/data/test2/test.txtdocker create --name busybox4 -v /data/test2:/data/test2 busybox # --volumes-from 使用其它容器的volumedocker run -dit --name busybox5 --volumes-from busybox4 busybox #查看docker exec busybox5 cat /data/test2/test.txt #挂载多个 数据卷容器docker run -dit --name busybox6 --volumes-from busybox4 --volumes-from busybox1 busyboxdocker exec busybox6 ls /data/  #查看#docker volume 备份备份volume挂载目录使用容器--volumes-from备份#使用数据卷容器备份busybox4的volumesdocker run --rm --volumes-from busybox4 -v $(pwd):/backup busybox   tar cvf /backup/backup.tar /data/test2/.以上docker volume实例,全部在单台docker主机docker集群环境,需要使用共享存储、分布式存储#docker volume使用NFS存储 #NFS服务端,配置nfs共享yum install nfs-utils rpcbind -ymkdir -p /data/nfs/dockerecho "/data/nfs *(rw,no_root_squash,sync)">>/etc/exportsexportfs -rsystemctl start rpcbind nfs-serversystemctl enable rpcbind nfs-servershowmount -e localhost #nfs客户端yum install -y nfs-utils rpcbind #创建volume 连接 172.16.50.43:/data/nfsdocker volume create --driver local   --opt type=nfs   --opt o=addr=172.16.50.43,rw   --opt device=:/data/nfs   volume-nfs #查看docker volume lsdocker volume inspect volume-nfs #容器使用volume-nfsdocker run -dit --name busybox7 -v volume-nfs:/nfs busybox #查看docker inspect -f {{.Mounts}} busybox7df -h |grep /data/nfs #volume目录/var/lib/docker/volumes/volume-nfs/_data自动挂载到了nfs服务上 #容器创文件测试docker exec busybox7 touch /nfs/testfiles.txt#使用volume driver 可实现更多的backend#删除测试容器,volumedocker rm -f -v tmpfs-test busybox{1,2,3,4,5,6,7}     #-f 强制删除,-v 删除volume  docker volume prune
(0)

相关推荐

  • Portainer

    一.基本介绍 (1)Portainer 是一款轻量级的图形化管理工具,通过它我们可以轻松管理不同的 docker 环境.Portainer 部署和使用都非常的简单,它由一个可以运行在任何 docker ...

  • Docker学习笔记之--安装mysql 并持久化数据到本地,最后使用Navicat连接测试(环境:centos7)

    在docker中 安装 mysql 8.0版本,参考文档:https://www.runoob.com/docker/docker-install-mysql.html 第一步:安装 docker p ...

  • Docker storage driver(十四)

    一.storage driver 作用 正常情况下,只有很少量的数据被写入到容器最上层的写入层,并且通过 volume 来写数据,然而我们也会遇到一些情况需要我们可以直接写入到容器的写入层,这我们就需 ...

  • Docker 网络(十一)

    Docker 通过网络驱动来支持容器的网络通信,默认情况下,Docker 提供两种网络驱动供我们使用,一个是 bridge,一个是 overlay.我们也可以自己写一个网络驱动插件,如果你足够大牛的话 ...

  • 老公趴下!62图给你讲Docker

    前言 第一趴---Docker容器圈简介 Docker容器圈简介 第二趴---Docker基本操作 Docker基本操作 容器圈 容器这个新生事物,现在还可以说是新生事物吗?对于我们学生而言,我觉得没 ...

  • Docker 持久存储介绍(十三)

    一.Docker 数据存储 我们都知道 Docker 的数据可以存在容器的可写层,但是也存在以下几点不足: 当该容器不再运行时,数据将不会持久存储,如果另一个进程需要它,就很难将数据从容器中取出. 容 ...

  • docker容器与宿主机的数据交互

    在生产环境中使用 Docker ,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作.方式一.Docker cp命令 docker cp :用于容器与主机之间的 ...

  • docker容器备份、恢复和迁移volume方案

    volume作为数据的载体,在很多情况下需要对其中的数据进行备份.迁移或是恢复.下面一docker容器的volume为例,说一下备份的技巧. 我们先建立一个容器vol_simple,该容器在/date ...

  • Docker 数据持久化Volume

    Docker镜像是基于联合文件系统(Union File System)的一种层式结构,由一系列指令一步一步构建出来.Docker镜像被存储在一系列的只读层中.当我们创建一个容器时,Docker会读取 ...

  • 使用分布式存储协议进行内容流存储,Audius赋能全球艺术家和创作者

    5月5日,分布式存储协议官方博客发布最新文章<Audius使用分布式存储协议进行内容流存储,赋能全球艺术家和创作者>,介绍了使用分布式存储协议的音乐共享平台Audius.以下为官方原文. ...

  • 玩机技巧 篇十:百度网盘高速下载免费白嫖!附替代网盘推荐 & 存储杂谈

    〇.前言 百度网盘作为目前国内最大的网盘平台,可谓垄断了国内的文件分享和资源下载市场,大家的工作学习都经常中碰到百度网盘分享的链接. 然而,一家独大的后果就是臭名昭著的「非会员限速」,网友调侃就算是快 ...

  • EB级大数据存储时代,智能化提升数据价值

    具体趋势包括了超融合.信创存储.数据保护.全闪存.EB级大数据存储.IPFS.NVMe SSD.SDS和混合云存储共计九个方面,目前业界和用户最为关注的技术方向. "数据存储新趋势" ...

  • Docker定时备份MySQL数据到七牛云

    前言:我Linux服务器安装了docker,docker容器跑了springboot项目,用到了mysql数据库.所以必须准备程序,数据备份功能,万一哪天系统挂了,数据丢了,我可以随时恢复.因为没钱开 ...

  • 大唐存储进驻金融信息技术创新生态实验室,助力金融自主生态建设

    近日,大唐存储作为金融信息技术创新生态实验室的成员单位有多款产品在实验室进行展示,这标志着大唐存储正在积极推进金融自主生态建设,助力金融市场发展. 金融信息技术创新生态实验室于2020年11月成立,是 ...

  • .NET之Docker部署详细流程

    dotNET跨平台 今天 以下文章来源于鹏祥 ,作者AZRNG 开篇语 自己从头开始走一遍docker部署.net的流程,作为一种学习总结,以及后续会写一些在该基础之上的文章. 本次示例环境:vs20 ...