有些容器在运行的时候是会产生数据的;
这种容器就叫做有状态容器;
比如说 MySQL 容器;
我们在创建镜像的时候希望保留的是 MySQL 各种配置以及扩展;
并不想把 MySQL 的数据也打包到镜像中;
数据卷就是为此场景而生的;
数据卷分为两种类型:
先来讲绑定挂载的 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 的方案并不优雅;
因为它将宿主机和容器进行了强耦合;
我们来创建一个受管理的 volume ;
docker run -it -v /test baijunyao/test /bin/bash
命令中我们没有指定宿主机的目录;
Docker 会创建到 /var/lib/docker/volumes
目录下;
也可以通过命令查看:
docker volume ls
但是这个 VOLUME NAME 非常不方便记录;
如果要自定义 VOLUME NAME 可以使用 volume create
命令;
docker volume create vm_test
再次查看数据卷
docker volume ls
接着把刚创建的数据卷挂载到容器上;
docker run -it --mount source=vm_test,target=/test baijunyao/test /bin/bash
在容器中创建个文件;
touch /test/volume.txt
退出容器在宿主机的 volume 目录查看;
docker volume rm vm_test
本文为白俊遥原创文章,转载无需和我联系,但请注明来自白俊遥博客https://baijunyao.com 欢迎捐赠赞赏加入组织创建QQ群及捐赠渠道
308626712 :6666
2021-12-11 18:52:01 回复
zwsnail :到目前都看懂了,感谢作者!看其他视频我一直懵
2020-02-10 22:12:53 回复
空白的记忆。 :12313131312
2019-11-15 21:12:49 回复
幸福的小海豚 :
2019-11-17 16:59:16 回复
Then :1244444444444
2019-11-09 15:27:04 回复
阿航 :12313
2019-11-07 11:19:15 回复
Music音乐鱼 :
2019-11-06 16:14:24 回复
Music音乐鱼 :niha
2019-11-06 16:12:53 回复
null :1
2019-11-06 10:42:00 回复
最新评论