docker容器数据卷

docker的容器数据卷

概述

问题的产生:

  • 我们使用docker的时候,数据是在容器中的,如果容器删除了,那么数据自然也就没有了。除非你使用commit来生成一个新的镜像。但是生成一个新的镜像实在是不合理。所以我们需要一种方式来保存我们容器所产生的数据

什么是容器数据卷

  • 卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union File System提供一些用于持续存储或共享数据的特性:卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷
  • 特点:
    • 数据卷可在容器之间共享或重用数据
    • 卷中的更改可以直接生效
    • 数据卷中的更改不会包含在镜像的更新中
    • 数据卷的生命周期一直持续到没有容器使用它为止
  • 总结:
    • 容器的持久化
    • 容器间继承+数据共享

使用方式

命令形式

docker run -it -v /宿主机绝对路径目录:/容器内目录  镜像名

案例演示

tomcat中的webapps访问的页面,同步成我们自己的页面

docker run -d -p 8080:8080 --name=tomcat1 -v /usr/local/docker/tomcat/webapps:/usr/local/tomcat/webapps tomcat

查看容器细节

docker inspect df7499b811e3

在这里插入图片描述

查看8080端口发现没有内容
在这里插入图片描述

修改/usr/local/docker/webapps/ROOTindex.html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
    <h2>this is index</h2>
</body>
</html>

访问tomcat发现页面已经被修改。

使用dockerfile形式

编写dockerfile文件tomcat-volume

FROM tomcat

VOLUME ["/usr/local/tomcat/webapps","/usr/local/tomcat/log"]

CMD echo "finished,--------success1"
CMD catalina.sh run

生成镜像

docker build -f tomcat-volume -t machoul/tomcat-volume:v1 .

启动容器

docker run -d -p 8081:8080 --name=tomcat-volume-1 78960223b717

查看容器的具体介绍

docker inspect 9f82810c263d

在这里插入图片描述

找到对应绑定的文件位置,创建ROOT/index.html文件。返回查看页面

备注:

  • 如果Docker挂载主机目录Docker访问出现cannot open directory .: Permission denied,需要在挂载目录后面多加一个**–privileged=true**参数

数据卷容器

命名的容器挂载数据卷,其他容器通过挂载这个(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器

父容器挂载数据卷

docker run -d -p 8081:8080 --name=tomcat-volume-1 78960223b717

子容器挂载父容器

docker run -d -p 8082:8080 --name=tomcat-volume-2 --volumes-from tomcat-volume-1 78960223b717

容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值