Docker学习笔记——数据管理

Docker数据管理

Docker数据卷

数据卷:容器中的部分数据可以通过镜像的形式保存下来,其他数据一旦容器被删除,数据也就丢失了,数据卷技术是一个可供一个或多个容器使用的特殊目录,可以在容器之间共享和重用、对数据卷的修改会立马生效,对数据卷的更新不会影响镜像,数据卷默认会一直存在,即使容器被删除。
数据卷的创建及查看:

docker volume create 数据卷名
docker volume ls 

在这里插入图片描述
查看数据卷的信息

docker volume inspect my-volume

在这里插入图片描述
启动一个挂载数据卷的容器
基于centos镜像创建了一个my-centos的容器,后台运行,并加载了数据卷到容器的/home目录。
在这里插入图片描述
查看数据卷的具体信息

docker inspect my-volume查看容器的具体信息
在这里插入图片描述
数据卷的删除

docker volume rm 数据卷名

在这里插入图片描述

Docker挂载主机目录

docker run -v [主机目录]:[容器目录]:[目录权限] 镜像
目录权限:
ro:只读
rw:可读可写

在这里插入图片描述
查看容器信息中发现挂载成功
在这里插入图片描述
在容器中新建文件看看主机目录是否存在?
在这里插入图片描述
在这里插入图片描述
在主机挂载目录下新建文件看看容器中是否存在?
在这里插入图片描述
在这里插入图片描述
过程中遇到的问题
我使用docker run -d --name my-centos -v D:\docker-volume:/home centos命令后台运行my-centos容器时,再使用docker attach my-centos进行容器中新建文件来检查数据卷挂载主机目录是否能够做到数据同步,发现进不了容器,并且使用docker ps命令发现正在运行的容器为空。为什么呢?-d不就是后台运行吗?
在这里插入图片描述

解答:看了相关资料才知道,容器的后台运行使用-d的前提是要有前台进程。
解决方案1:
在这里插入图片描述
解决方案2:以交互模式进入容器,并且使用ctrl+p+q退出容器
在这里插入图片描述

具名挂载,匿名挂载

具名挂载:
docker run -v 卷名:主机目录:容器目录 镜像
匿名挂载:
docker run -v 主机目录:容器目录 镜像
注:在挂载主机目录时主机目录是可以省略不写的,就会使用默认的路径

在这里插入图片描述
疑问
在win10平台主机挂载目录不写的话,默认的挂载目录好像是linux平台下的目录,在win10平台下访问不到。是不是在win10下主机挂载目录不能省略?或者需要做其他的配置?
在这里插入图片描述

容器间的数据共享

首先新建容器,并指定数据卷目录
在这里插入图片描述
使用–volumes-from选项建立容器容器2和容器1的数据卷挂载关系
在这里插入图片描述
最后测试在容器2的volume01中新建test.json文件,同时在容器1的volume01中也出现了这个文件。

参考文献

书籍:《Docker-从入门到实践》
链接: 狂神说Java-Docker教程

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值