Docker系列7:逻辑卷
admin
2023-03-27 05:01:32
0

一、存储卷简介

1、什么是存储卷(volume)

  • 就将一个容器的目录和一个宿主机的目录同步起来了,就称之为volume,也就是存储卷。

  • 当在容器中产生数据的时候,这个数据就会直接写入到了物理磁盘,就解决了性能的问题

  • 使用存储卷,还实现了数据的持久存储

  • 通过使用存储卷,还可以实现分布式

    Docker系列7:逻辑卷

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,让21用相同的存储卷

[root@host1 ..]# docker run --name httpd2 --rm -it --volumes-from httpd1 busybox
/ # 
/ # ls /data/
t.txt
/ #

3、基础架构容器使用举例

  • 首先我们可以先做个容器,这个容器不需要运行,而是仅仅作为一个基础架构支撑容器

  • 新建容器的卷复制于这个容器,比如,复制三个容器出来,第一个是nginx作为反向代理,第二个是apache出来静态请求,第三个是php处理php请求:

    Docker系列7:逻辑卷

  • 这个基础架构支撑容器,还可以提供一个公共的名称空间,这样上面的三个容器就有了相同的IP,主机名,而且也可以基于127进行通信了

案例:基于基础架构容器制作容器

1)先创建基础架构容器

[root@host1 ~]# docker run --name base1 -it --rm -v /disk:/data busybox

2)创建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}}'

[root@host1 ..]# docker inspect httpd1 -f '{{.Id}}'
24053ef79c61400f0f8a151087bfd7c1e31e004ee9b87b8a2e64f1efd72d2b52

[root@host1 ..]# docker inspect httpd1 -f '{{.State.Status}}'
running



相关内容

热门资讯

特朗普下令不打了,美国的“余粮... 可以说戛然而止,快得让很多人都无法适应。前两周,每一天美国都要打击伊朗一通。就在7月24日白宫会议前...
穆杰塔巴最新表态:支持黎真主党 △伊朗最高领袖穆杰塔巴·哈梅内伊(资料图)当地时间7月26日晚,伊朗最高领袖穆杰塔巴·哈梅内伊对黎巴...
美军瘫痪一艘驶向伊朗的油轮,特... 美国总统特朗普虽下令暂停打击伊朗,但美军仍在执行对霍尔木兹海峡的封锁任务。针对美军瘫痪一艘驶向伊朗油...
“小牌大耍”的底气到底是哪里来... 澎湃首席评论员 李平这两天,“艺人李权哲乘高铁占座事件”在网上引发热议,该艺人参加的活动主办方曾发布...
越南籍船舶南海遇险沉没,中方已... 据凤凰卫视报道,一艘越南船舶7月24日夜间在越南庆和以东220海里附近遇险沉没,船上共62名越南籍人...
李权哲占座、蒙面、装死:娱乐圈... 你买了一张高铁一等座的票,找到自己的位置,18A。有人坐着。你拿出手机看了眼购票记录——没错,18A...
杭州景区咖啡店闯入1条幼蛇,仅... 夏天气温高、湿度大,蛇类活动进入高峰期,千万别被“小蛇无害”的刻板印象骗了!有些幼蛇看着迷你可爱,实...
AI开源公开信签署企业增至50... IT之家 7 月 26 日消息,英伟达、微软、IBM、Meta 等 25 家美国科技企业本周(7 月...
南阳快手短视频代运营企业的服务... 在短视频平台快速发展的背景下,企业通过快手等渠道进行内容运营已成为常见的市场动作。对于希望借助短视频...
普通人该如何跟上科技发展的步伐 这个被称作科技的词汇, 听起来既有宏大之感, 又颇为遥远, 好似仅仅归属于在实验室里专心致志钻研的科...