docker 数据卷 mysql_Docker 入门教程(五)数据卷 Volumes

有些容器在运行的时候是会产生数据的;

这种容器就叫做有状态容器;

比如说 MySQL 容器;

我们在创建镜像的时候希望保留的是 MySQL 各种配置以及扩展;

并不想把 MySQL 的数据也打包到镜像中;

数据卷就是为此场景而生的;

数据卷分为两种类型:

绑定挂载的 volume (bind mount volume)

受管理的 volume (managed volume)

绑定挂载的 volume (bind mount volume)

先来讲绑定挂载的 volume ;

创建一个测试数据卷;

docker run -it -v /root/test:/test baijunyao/test /bin/bash

-v : 创建数据卷

/root/test:/test : 把本地的 /root/test 目录加载到容器的 /test 目录;

在容器的 test 目录中创建一个 a.php 文件;

touch /test/a.php

我们退出容器回到宿主机可以发现 /root/test 目录下也有了 a.php 文件;

受管理的 volume (managed volume)

绑定挂载的 volume 的方案并不优雅;

因为它将宿主机和容器进行了强耦合;

我们来创建一个受管理的 volume ;

docker run -it -v /test baijunyao/test /bin/bash

命令中我们没有指定宿主机的目录;

Docker 会创建到 /var/lib/docker/volumes 目录下;

f565b84b5c54da1ec7a020676999533c.png

也可以通过命令查看:

docker volume ls

b37e72f2e9e41c90e7c8b888f6a1dc79.png

但是这个 VOLUME NAME 非常不方便记录;

如果要自定义 VOLUME NAME 可以使用 volume create 命令;

docker volume create vm_test

再次查看数据卷

docker volume ls

427fe632c82c24ff3bc7b4c09431b2cb.png

挂载数据卷

接着把刚创建的数据卷挂载到容器上;

docker run -it --mount source=vm_test,target=/test baijunyao/test /bin/bash

在容器中创建个文件;

touch /test/volume.txt

退出容器在宿主机的 volume 目录查看;

41d202486989538b784a4bc7ca543720.png

删除数据卷

docker volume rm vm_test

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值