Docker系列7:逻辑卷-创新互联
一、存储卷简介
创新互联是一家从事企业网站建设、网站制作、成都做网站、行业门户网站建设、网页设计制作的专业的建站公司,拥有经验丰富的网站建设工程师和网页设计人员,具备各种规模与类型网站建设的实力,在网站建设领域树立了自己独特的设计风格。自公司成立以来曾独立设计制作的站点成百上千。1、什么是存储卷(volume)
就将一个容器的目录和一个宿主机的目录同步起来了,就称之为volume,也就是存储卷。
当在容器中产生数据的时候,这个数据就会直接写入到了物理磁盘,就解决了性能的问题
使用存储卷,还实现了数据的持久存储
通过使用存储卷,还可以实现分布式
2、存储卷的类型
Bind mount volume:
Docker managed volume
Bind mount volume
这种类型是指在创建容器的时候,需要同时指定容器中的挂载点和宿主机的一个目录,这样来完成挂载
Docker managed volume
这种类型是在创建容器的时候,仅仅需要同指定容器中的挂载点,不需要指定宿主机中的目录就可以完成挂载。
宿主机中的目录会由docker自动生成,而且是随机生成,默认:/var/lib/docker/vfs/dir/xxxx
案例1:创建一个docker管理的卷
[root@host1 ~]# docker run --name httpd1 -it --rm -v /data busybox / # / # echo "test message">>/data/test.txt / #[root@host1 ~]# docker inspect httpd1 "Mounts": [ { "Type": "volume", "Name": "636a1967c63705161f941550edf4b0ced1584bf71087596ad61a49df4cd6ae4c", "Source": "/var/lib/docker/volumes/636a1967c63705161f941550edf4b0ced1584bf71087596ad61a49df4cd6ae4c/_data", "Destination": "/data", "Driver": "local", "Mode": "", "RW": true, "Propagation": "" } ],[root@host1 ~]# cd /var/lib/docker/volumes/636a1967c63705161f941550edf4b0ced1584bf71087596ad61a49df4cd6ae4c/_data [root@host1 _data]# cat test.txt test message [root@host1 _data]#案例2:创建容器,使用宿主机的/disk目录挂载到容器中
[root@host1 ~]# docker run --name httpd1 -it --rm -v /disk:/data busybox / # / # echo "test message">/data/t.txt / #[root@host1 ..]# cat /disk/t.txt test message宿主机上的/disk如果不存在,会自动创建
我们在设置容器所用的存储卷的时候,还可以设置容器所用的存成卷和另一个容器的存储卷相同
案例3:比如前面我们做好了容器httpd1,这里我们再做一个httpd2,让2和1用相同的存储卷
[root@host1 ..]# docker run --name httpd2 --rm -it --volumes-from httpd1 busybox / # / # ls /data/ t.txt / #3、基础架构容器使用举例
首先我们可以先做个容器,这个容器不需要运行,而是仅仅作为一个基础架构支撑容器
新建容器的卷复制于这个容器,比如,复制三个容器出来,第一个是nginx作为反向代理,第二个是apache出来静态请求,第三个是php处理php请求:
这个基础架构支撑容器,还可以提供一个公共的名称空间,这样上面的三个容器就有了相同的IP,主机名,而且也可以基于127进行通信了
案例:基于基础架构容器制作容器
1)先创建基础架构容器
[root@host1 ~]# docker run --name base1 -it --rm -v /disk:/data busybox2)创建nginx容器,复制基础架构的卷,并使用基础架构名空间
[root@host1 ..]# docker run --name nginx1 \ > --network container:base1 \ > --volumes-from base1 -it nginx:1.14-alpine过滤容器属性数据
docker inspect的结果是一个列表,在列表列表中是json格式的字符串
如果此时要过滤数据,其格式是 docker inspect -f {xxx} b5 来实现过滤效果
-f后面是双{},外侧的{}是固定格式,内侧的{}表示从{}中进行过滤
过滤元素的格式 -f '{{.path.item}}'
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
本文题目:Docker系列7:逻辑卷-创新互联
文章位置:http://hbruida.cn/article/iecss.html