#环境 centos7. , Docker version 17.12.-ce
docker volume创建、备份、nfs存储 #docker volume
数据存容器内,删容器即销毁全部数据
要保留的数据(数据持久化),需存储在容器外
docker volume是文件或目录,mount到docker容器中使用 docker volume
bind muount #挂载任意目录或文件
Volumes #固定路径的目录,docker管理
tmpfs mounts #存放宿主机内存中
image docker volume 官网文档地址 https://docs.docker.com/storage/volumes/ #bind muount实例
#docker挂载文件或目录到容器
#创建目录及文件
mkdir -p /data/test1
echo '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.txt
docker exec busybox1 cat /data/test1/test.txt
cat /data/test1/test.txt
为保证Dockerfile可移植,构建镜像不能使用bind muount #tmpfs mounts
# 使用--tmpfs
docker 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.txt
docker inspect busybox2 |grep Source
#docker volume命令管理 #创建volume
docker volume create volume-test1
#查看参数
docker inspect volume-test1
#使用volume
docker run -dit --name busybox3 -v volume-test1:/volume busybox
#查看
docker inspect -f {{.Mounts}} busybox3 #查看docker数据卷
docker volume ls
#删除没使用的数据卷(谨慎使用)
docker volume prune
Bind mounts和volumes都通过-v或--volume挂载,tmpfs使用--tmpfs
三种都可以使用--mount挂载,格式更清晰,官方推荐使用 #docker volume 数据共享
挂载相同目录
使用volume container
#数据卷容器 volume container # --volumes-from 容器名,就会传递容器的挂载目录(volume参数传递) #创建容器busybox4(不需要启动)
mkdir -p /data/test2
echo 'busybox4'>/data/test2/test.txt
docker create --name busybox4 -v /data/test2:/data/test2 busybox # --volumes-from 使用其它容器的volume
docker 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 busybox
docker exec busybox6 ls /data/ #查看
#docker volume 备份
备份volume挂载目录
使用容器--volumes-from备份
#使用数据卷容器备份busybox4的volumes docker 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 -y
mkdir -p /data/nfs/docker
echo "/data/nfs *(rw,no_root_squash,sync)">>/etc/exports
exportfs -r
systemctl start rpcbind nfs-server
systemctl enable rpcbind nfs-server
showmount -e localhost #nfs客户端
yum install -y nfs-utils rpcbind #创建volume 连接 172.16.50.43:/data/nfs
docker volume create --driver local \
--opt type=nfs \
--opt o=addr=172.16.50.43,rw \
--opt device=:/data/nfs \
volume-nfs #查看
docker volume ls
docker volume inspect volume-nfs #容器使用volume-nfs
docker run -dit --name busybox7 -v volume-nfs:/nfs busybox
#查看
docker inspect -f {{.Mounts}} busybox7
df -h |grep /data/nfs
#volume目录/var/lib/docker/volumes/volume-nfs/_data自动挂载到了nfs服务上 #容器创文件测试
docker exec busybox7 touch /nfs/testfiles.txt
#使用volume driver 可实现更多的backend #删除测试容器,volume docker rm -f -v tmpfs-test busybox{,,,,,,}
#-f 强制删除,-v 删除volume
docker volume prune

docker存储volume的更多相关文章

  1. 理解Docker(8):Docker 存储之卷(Volume)

    (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 (4)Docker 容器的隔离性 - 使用 ...

  2. Docker 存储之卷(Volume)

      理解Docker(8):Docker 存储之卷(Volume) (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespa ...

  3. 第 6 章 存储 - 040 - docker managed volume

    docker managed volume 与 bind mount 在最大区别是不需要指定 mount 源,指明 mount point 就行了 通过 -v 告诉 docker 需要一个 data ...

  4. Docker存储

    前言 上一篇文章中简单总结了一下docke的基础使用方法,这次我来总结一下有关docker存储方面的相关知识.本文同样建立在CloudMan的系列教程之上,有兴趣的可以直接移步. 有些人可能觉得这个很 ...

  5. Docker系列05—Docker 存储卷详解

    本文收录在容器技术学习系列文章总目录 1.存储卷介绍 1.1 背景 (1)docker 的 AFUS 分层文件系统 docker镜像由多个只读层叠加面成,启动容器时,docker会加载只读镜像层并在镜 ...

  6. 6、Docker存储卷

    Why Data Volumes?  来自马哥教育 Data volumes Volume types  绑定挂载卷:在宿主机和容器上各指明绑定路径才能进行绑定. docker管理卷:在容器内指定挂载 ...

  7. Docker存储卷(V18.X)

    简介 介绍 Docker的存储卷称之为volume,本质上容器上的一个或者多个目录,而这些目录绕过了联合文件系统,与宿主机中的目录或者其他容器目录进行了绑定关系,这种绑定关系可以看作Linux的mou ...

  8. Docker Swarm volume 数据持久化

    Docker Swarm volume 数据持久化 volume 是将宿主级的目录映射到容器中,以实现数据持久化. 可以用两种方式来实现: volume 默认模式:工作节点宿主机数据同步到容器内. v ...

  9. docker存储与网络

    目录 Docker存储 挂载主机目录 创建一个数据卷 挂载一个宿主机目录作为数据卷 数据卷容器 创建一个数据卷容器 利用数据卷容器迁移数据 删除数据盘 Docker网络 简介 bridge网络 bri ...

随机推荐

  1. springMVC将处理的后的数据通过post方法传给页面时,可能会出现乱码问题,下面提出解决post乱码问题的方法

    在web.xml中加入: <!-- 解决post乱码问题 --> <filter> <filter-name>CharacterEncodingFilter< ...

  2. Golang之http编程

    Go原生支持http.import("net/http") Go的http服务性能和nginx比较接近 几行代码就可以实现一个web服务 服务端http package main ...

  3. loadrunner12.5-vugen回放脚本提示:URL=“http://www.testclass.net/js/scripts.js”的常规连接当前无套接字 (16 不足) 可用,是什么意思呢?怎么理解呢?

    会发生这个报错,是因为每个浏览器都有一个限制,检查哪个浏览器客户正在模拟, 通常只允许16个并发连接. 如果超过此超过接数,将显示该消息,通知您没有可用的连接. 而max connection的默认值 ...

  4. SNP问题大集锦

    SNP问题大集锦 [2017-01-19]       最近小编对基因检测很感兴趣,也跟风去测了一下,这一测不要紧,吓得小编几天没睡着觉,这不,检测报告上称小编的减肥能力弱,虽然小编一家都是胖子,唯有 ...

  5. 02 请求库之 requests模块

    requests模块   一 介绍 #介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3) #注意:requ ...

  6. [BAT]cmd命令之 cd /d %~dp0

    cd /d %~dp0是什么意思啊?批处理文件中的一条语句意思是 更改当前目录为批处理本身的目录 有些晕吧?不急,我举例 比如你有个批处理a.bat在D:\qq文件夹下 a.bat内容为 cd /d ...

  7. 让QQ好友现形

    方法一 现在使用QQ的朋友,越来越注重保护自己的个人信息,如果对方将个人资料设置为保密你就无法看到对方的资料了,而这位好友如果又有着不断变换昵称的不良习惯,那么随着QQ好友名单的不断增加,时间一长,你 ...

  8. 使用delphi 开发多层应用(十九) ios通过soap 访问kbmmw服务器

    随着delphi XE4 的推出,开始真正意义上支持ios 的开发,由于目前kbmmw 还不完全支持ios 的开发,因此 无法直接使用kbmmw 的客户端访问kbmmw 的服务器(虽然kbmmw 也提 ...

  9. 2018.09.15 hdu3018Ant Trip(欧拉路)

    传送门 显然答案等于各个连通分量的笔画数之和. 因此我们dfs每个连通分量计算对答案的贡献. 对于一个连通分量,如果本来就有欧拉回路那么只需要一笔. 否则需要寄点数/2那么多笔才能画完. 知道这个结论 ...

  10. 2018.09.09 bzoj4403: 序列统计(Lucas定理)

    传送门 感觉单调不降序列什么的不好做啊. 于是我们序列中下标为i的元素的值加上i,这样就构成了一个单调递增的序列. 问题就变成了: 求出构造长度分别为1 ~ n且每个元素的值在l+1 ~ r+n之间的 ...