Docker进阶之路(十一):docker volume 数据卷及数据卷容器

一、前言

应用在容器中运行时,会产生一些数据,如日志等,这些数据是存储在容器中的,容器停止后,数据会丢失,为了将数据存储下来,需要用到docker volume,将数据存储在数据卷或数据卷容器中。

在启动容器时,可以使用-v参数指定容器数据的挂载方式,可以是

  • 本地目录或文件
  • 挂载到远程主机
  • 数据卷容器

二、数据卷

1.挂载本地目录
有本地路径:/home/ubuntu/app/data/data1,执行如下命令,创建并启动容器时,指定容器的挂载目录到本地

docker run -tid --name db1 -v /home/ubuntu/app/data/data1/:/data httpd /bin/bash

进入到容器内容,可以看到在根目录下自动生成了data目录,在data目录中生成的app.log文件,在宿主机中的/home/ubuntu/app/data/data1目录下可以访问到

进入db1容器

docker exec -it db1 /bin/bash

查看容器根目录

root@4d941bffc6fe:/usr/local/apache2# ls /data/
app.log  app.o

执行docker inspect db1命令查看容器信息,可以在Mounts节点下看到容器的挂载信息
在这里插入图片描述

2.挂载本地文件
执行如下命令,将容器中的/data/app.log文件挂载到宿主机的/home/ubuntu/app/data/data1/app.log下,注意宿主机的文件要存在,否则会当成目录挂载

docker run -tid --name db2 -v /home/ubuntu/app/data/data1/app.log:/data/app.log httpd /bin/bash

执行命令进入到db2容器内,发现在根目录下自动创建了data目录,并在data目录中自动创建了app.log文件
进入db2容器

docker exec -it db2 /bin/bash

查看容器根目录

root@ae578bb64046:/usr/local/apache2# ls /data/
app.log

执行docker inspect db2命令查看容器信息,可以在Mounts节点下看到容器的挂载信息
在这里插入图片描述
3.挂载数据卷
3.1 创建数据卷app_data

docker volume create app_data

3.2 挂载数据卷

docker run -tid --name db4 -v app_data:/data httpd /bin/bash

3.3 查看数据卷信息

docker volume inspect app_data

在这里插入图片描述

三、数据卷容器

1.创建一个dbstore的数据卷容器

docker run -tid --name dbstore -v /home/ubuntu/app/data/data1/ httpd

执行docker volume ls查看数据卷信息,发现docker自动创建了一个数据卷
在这里插入图片描述
使用docker inspect dbstore查看容器信息,可以看到原路径使用的就是自动生成的数据卷,目标路径是/home/ubuntu/app/data/data1/
在这里插入图片描述

2.挂载数据卷容器
创建一个db3的容器,并使用--volumes-from参数指定容器卷

docker run -tid --name db3 --volumes-from dbstore httpd /bin/bash

执行docker inspect db3查看容器信息,发现挂载目录使用的就是数据卷容器dbstore的目录
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值