docker数据卷volume管理(一)

前言

默认情况下,容器内创建的所有文件都存储在可写容器层上。

在这里插入图片描述

1. 数据卷 (volume)详解

volume在docker中的意思表示将宿主机上的目录挂在到docker容器中,这样可以保持数据持久化,当将容器删除时,数据不会丢失

注意:数据卷 的使用,类似于 Linux 下对目录或文件进行 mount,镜像中的被指定为挂载点的目录中的文件会隐藏掉,能显示和看的是挂载的 数据卷,而不是被作为挂载点儿的目录中原来的内容。

a. volume 的使用场景
卷是在Docker容器和服务中保存数据的首选方式。卷的一些用例包括:
在多个运行容器之间共享数据。如果您没有明确创建它,则会在第一次将其装入容器时创建卷。当该容器停止或被移除时,该卷仍然 存 在。多个容器可以同时安装相同的卷,无论是读写还是只读。仅当您明确删除卷时才会删除卷。
当您想要将容器的数据存储在远程主机或云提供商上而不是本地时。
当您需要备份,还原或将数据从一台Docker主机迁移到另一台时,卷是更好的选择。您可以停止使用卷的容器,然后备份卷的目录实现数据的备份和迁移(如/var/lib/docker/volumes/)。

例如:

1. 创建一个新的数据卷,之后运行一个容器,并把数据卷挂载到容器的一个目录/webapp 下。
2. 在容器的 /webapp 目录下创建文件 nginx.txt 并写入一些内容
3. 接着退出这个容器,并删除这个容器。
4. 运行一个新的容器,并挂载刚才的数据卷到容器的目录 /zjg
5. 观察容器目录 /zjg 下是否有之前创建的文件 nginx.txt
创建一个数据券
docker volume create zjg_v1

启动一个容器并挂载一个已经创建好的数据卷

在用 docker run 命令的时候,使用 --mount 标记来将 数据卷 挂载到容器里。
下面创建一个名为 mynginx 的容器,并加载一个 数据卷 到容器的 /webapp 目录。*

docker run -it  --mount source=zjg_v1,target=/webapp --name mynginx nginx  /bin/sh

--mount 语法:

--mount type=volume, source=数据卷名, target=容器中的挂载点

type 的值可以是 volume , bind , tmpfs 默认是 volume

source 也可以简写成 src

target 可以简写成 dst


进入容器,创建文件

此时在容器的 /webapp 目录下创建文件 nginx.txt

/ # touch /webapp/nginx.txt
/ # echo "nginx server" > /webapp/nginx.txt
退出并删除容器
/ # exit
[root@docker data_volume]# docker rm mynginx
启动一个新的容器,并且把刚才的数据卷 zjg_v1 挂载到新的容器里
[root@docker data_volume]# docker run -it --name nginx_new \
> --mount source=zjg_v1,target=/zjg \
> alpine  /bin/sh
接着查看容器中目录 /zjg 下是否有个刚才的文件 nginx.txt
/ # cat /zjg/nginx.txt
nginx server
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值