Docker容器数据卷

2020-11-18  本文已影响0人  yywfy的昵称

Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据作为镜像的一部分保存下来,当数据删除后,数据自然也就没有了,为了能保存docker里的数据,需要使用到数据卷。将宿主机上的文件夹挂载到Docker的文件系统中,Docker退出时,数据也不会丢失,而且可以将同一个宿主机文件夹挂载到多个Docker容器中,实现数据的共享。

给Docker 容器添加数据卷的方法有2种:

1,在启动docker 容器的时候,添加-v参数,用命令行添加数据卷。

docker run -it -v /宿主机目录:/容器内目录 --privileged=true  centos /bin/bash

docker run

2,使用docker file在构件docker镜像的时候指定数据卷。

Dockerfile:

#基于tomcat:8.5构造一个镜像

FROM tomcat:8.5

#加入容器卷

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

CMD echo "finished,--------success1"

CMD /bin/bash

构建完Docker镜像之后,启动一个Docker 容器,用命令docker inspeact 容器ID,查看容器的数据卷,不给定宿主机的目录时,会自动生成一个文件夹:

docker inspect

多个Docker容器挂载同一个数据卷

创建Dockerfile,使用dockerfile构造镜像生成一个自定义的centos

dockerfile

使用自己创建的镜像启动一个容器

docker run -it –name=os1 mycentos01:1.0 /bin/bash

使用自己创建的镜像启动第二个容器继承第一个

docker run -it –name=os2 --volumes-from os1 mycentos01:1.0/bin/bash

使用自己创建的镜像启动第三个容器继承第二个

docker run -it –name=os3 --volumes-from os2 mycentos01:1.0/bin/bash

进入os1在mydata里面创建个os1.txt,进入os2查看mydata里面也有os1.txt,在os2的mydata里面创建os2.txt,进入os3查看mydata里面的数据,可以找到os1.txt和os2.txt。

删除os1之后情况,os2,os3的mydata里面的数据不会发生变化。

上一篇下一篇

猜你喜欢

热点阅读