设为首页 收藏本站
查看: 867|回复: 0

[经验分享] Docker存储卷

[复制链接]
发表于 2019-2-20 10:57:02 | 显示全部楼层 |阅读模式
  docker存储卷:

docker容器卷的使用方式:
1 Docker 管理卷:
docker run -it --name [名称] -v [docker内部的卷] [镜像名称]
具体使用:
docker run -it --name testvolume -d -v /data/mydata 75835a67d134
查看存储卷映射的目录:
命令:docker inspect f878a628f152
"Mounts": [
{
"Type": "volume",
"Name": "dd91ef9ae17175499d490c36e70033e4701a2d66337f8e6435503bd9ddd1811b", --卷的uuid
"Source": "/var/lib/docker/volumes/dd91ef9ae17175499d490c36e70033e4701a2d66337f8e6435503bd9ddd1811b/_data", --宿主机中的所在位置
"Destination": "/data/mydata", --容器中的目录
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
测试验证是否关联:
在宿主机目录中创建测试文件:
[root@www10:23:05_data]#pwd
/var/lib/docker/volumes/dd91ef9ae17175499d490c36e70033e4701a2d66337f8e6435503bd9ddd1811b/_data
[root@www10:23:06_data]#echo "holle world" > test.html
在容器中相对应目录查询:
[root@f878a628f152 /]# cd data/mydata/
[root@f878a628f152 mydata]# ls
[root@f878a628f152 mydata]# ls
test.html
在容器中添加一些内容:
[root@f878a628f152 mydata]# echo hello yl >> test.html
[root@f878a628f152 mydata]# cat test.html
holle world
hello yl
在宿主机中查看:
[root@www10:23:45_data]#cat test.html
holle world
hello yl
当使用--rm 一次性启动的时候退出时候,会一并删除宿主机目录中的数据
当使用 -d 做后台进入运行的时候,退出后删除容器不会 目录中数据不会丢失!
2 绑定挂载卷:
docker run -it -v [宿主机中目录]:[容器中目录] --name [名称] [镜像名称]
具体使用:
docker run -it -v /data/dockerdir:/data/mydata --name b2 75835a67d134
查看卷信息:
"Mounts": [
{
"Type": "bind",
"Source": "/data/dockerdir", ---宿主机目录
"Destination": "/data/mydata", --容器中目录
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
当容器删除后,数据依然存在:
[root@www10:36:22dockerdir]#docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
d05a6a77992a        75835a67d134        "/bin/bash"         5 minutes ago       Exited (0) 22 seconds ago                       b2
[root@www10:36:24dockerdir]#docker rm b2
b2
[root@www10:36:30dockerdir]#docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@www10:36:32dockerdir]#ls
test.html
[root@www10:36:49dockerdir]#cat test.html
hello world
hello yl
再次启动时即是更换容器内部绑定目录也可以使用数据:
[root@www10:36:51dockerdir]#docker run -it -v /data/dockerdir:/data/web --rm  --name b2 75835a67d134
[root@84f4e4aa6a49 /]# ls
anaconda-post.log  bin  data  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@84f4e4aa6a49 /]# cd data/
[root@84f4e4aa6a49 data]# ls
web
[root@84f4e4aa6a49 data]# cd web/
[root@84f4e4aa6a49 web]# ls
test.html
..................................................................
使用模板方式过滤信息:
docker inspect -f {{.Mounts}} [镜像名称]
.................................................
多个docker容器可以关联到一个宿主机目录!
测试:
启用两个容器:
docker run -it --name b1 -d -v /data/dockerdir:/data/web 75835a67d134
docker run -it --name b2 -d -v /data/dockerdir:/data/web 75835a67d134
[root@www11:01:26~]#docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
84c3bd9718e0        75835a67d134        "/bin/bash"         5 seconds ago       Up 4 seconds                            b2
d8a8f4203f13        75835a67d134        "/bin/bash"         16 seconds ago      Up 15 seconds                           b1
进入目录后分别在两个目录中创建文件:
b1中创建文件:
[root@d8a8f4203f13 web]# echo hello jim > test12.txt
[root@d8a8f4203f13 web]# ls
index.html  test12.txt  test.html
[root@d8a8f4203f13 web]# cat test12.txt
hello jim
b2中创建文件:
[root@84c3bd9718e0 web]# echo hello test > index.html
[root@84c3bd9718e0 web]# ls
index.html  test.html
宿主机目录中查看:
[root@www11:01:28~]#cd /data/dockerdir/
[root@www11:09:30dockerdir]#ls
index.html  test12.txt  test.html
删除docker后查看宿主机目录数据一样存在!
...............................................................
docker复制存储卷路径:
如何复制:具体使用
容器b1:
docker run -it --name b2 -d -v /data/dockerdir:/data/web 75835a67d134
不用启动,只需要存在即可!
容器b2:
docker run -it --name b2 --volumes-from b1 75835a67d134
在共享网络:
docker run --name t2 --network container:t1 -it --rm b2



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-674805-1-1.html 上篇帖子: Docker学习之搭建ActiveMQ消息服务 下篇帖子: 解决“Docker Quickstart Terminal”不能启动问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表