docker 数据卷与挂载目录

  • 一:数据卷

数据卷用来保存对容器的修改/数据,可供容器之间共享和重用,数据卷独立于容器,不会随着容器删除而删除

创建数据卷

docker volume create my-vol

数据卷列表

docker volume ls

查看数据卷具体信息

docker volume inspect my-vol

删除数据卷

docker volume rm my-vol

清除无主的数据卷

docker volume prune

 

启动一个容器并挂载一个数据卷到容器的/webapp目录(两种方式:)

docker run -d -P --name nginx -v my-vol:/webapp nginx
docker run -d -P --name nginx --mount source=my-vol,target=/webapp nginx

 

要点:

①如果本地数据卷或者本地目录尚未创建,-v命令则会自动创建,--mount则会报错

②如果是容器里的目录不存在,两者都会自动创建

③--mount命令解析:

由多个键=值组成,

有type=bind/volume/tmpfs,(省略该字段则默认为volume)

可使用source/src=本机目录文件,(省略该字段则为匿名卷)

target/destination/dst=容器目录,

可指定readonly)

 

测试一下两个容器通过数据卷来数据共享(注意:数据卷仅仅保存挂载目录里的数据)

容器一:

docker run -d -p 82:80 --name nginx-v -v my-vol-test:/webapp nginx

进入nginx-v容器,到挂载的目录下创建一个文件test

docker exec -it nginx-v bash
cd webapp/
touch test

 

容器二:

docker run -d -p 83:80 --name nginx-v1 --mount src=my-vol-test,target=/mywebapp nginx

进入nginx-v1容器,到挂载目录下查看是否有test文件

docker exec -it nginx-v1 bash
cd mywebapp/
ls

 

  • 二:挂载目录

将一个本地绝对路径挂载到tomcat容器的绝对路径,可通过此方法来部署web应用

docker run -d -p 8082:8080 --name tomcat-mount -v /usr/local/kun/aa:/usr/local/tomcat/webapps/aa tomcat

或者

docker run -d -p 8082:8080 --name tomcat-mount --mount type=bind,src=/usr/local/kun/aa,target=/usr/local/tomcat/webapps/aa tomcat

注意:

①容器里必须是绝对路径,如果/usr/local/tomcat/webapps 换成 /webapps 经过验证是不行的

②如果想要访问本地/usr/local/kun/aa下的test.html,容器里的目录/usr/local/tomcat/webapps必须加多一层目录 /usr/local/tomcat/webapps/aa

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值