Docker学习:容器间数据挂载与共享 | 远程共享&挂载数据卷 | sshfs挂载远程volume | 容器内部通过sshfs访问远程主机 | -v |--volumes-from(实战篇)

前言

本讲是从Docker系列讲解课程,单独抽离出来的一个小节,主要介绍宿主、容器间数据共享,它的好处自然不言而喻,Tomcat集群就是这么玩儿的(多个tomcat服务,对应一套web应用)。 

核心原理,在宿主机上开辟一片空间,各容器通过-v挂载方式,都指向该宿主机的同一目录,一处修改,其他各处数据自动同步更新。

一、本地实现容器数据共享的两种方法

1.普通方式:通过docker run -v实现

格式:docker run --name 容器名 -v宿主机路径:容器内挂载路径 镜像名

#示例
docker run --name tomcat1  -v /usr/webapps:/usr/local/tomcat/webapps tomcat:latest 

注:这里的-v 是volumes 数据卷的意思,等价于--volumes。

有没有发现什么问题?

挂载点是固定的,宿主机的一个数据卷,往往要被多个容器挂载,如果能给-v后面的挂载目录起个别名,是不是很Nice?

当然可以!!

2.高端方式:创建共享容器

1)docker create -v 创建共享容器,并起别名

#仅仅是创建共享容器,该命令并不会直接run容器,尾部的 /bin/true没有实际意义,占位符而已
#-v 后面的宿主机路径和容器路径中间,用:隔开,路径都需要是绝对路径
docker create --name webpage -v /webapps:/tomcat/webapps tomcat /bin/true

2)docker run --volumes-from 指定共享容器 

docker run  -d --volumes-from webpage --name tomcat1  tomcat:latest
docker run  -d --volumes-from webpage --name tomcat2  tomcat:latest

这种方式,是不是 很beautiful?爽心悦目,感觉在使用java编程一样,抽取共用常量为final static。 

二、远程共享数据卷的使用

1.安装远程共享插件

docker plugin install --grant-all-permissions vieux/sshfs   #安装插件(会比较慢,需耐心等待一下)

注:不安装此插件,稍后会报error looking up volume plugin vieux/sshfs: plugin "vieux/sshfs" not found ,这个错误。

2.创建远程共享容器 sshvolume

docker volume
  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值