云计算-9-Dokcer容器的数据管理

发布于 2024-07-19
813

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

扫码阅读
手机扫码阅读

云计算-Docker容器的数据管理

什么是数据卷

数据卷是供一个或多个容器使用的特殊目录,绕过UFS(UNIX文件系统),用于数据的持久化存储,独立于容器生命周期。删除容器时不会删除挂载的数据卷,也没有垃圾收集机制处理数据卷。

  • 数据卷初始化时会拷贝容器挂载点的数据。
  • 数据卷可在容器间共享或重用。
  • 数据卷内容可直接修改且不会影响镜像更新。
  • 数据卷即使容器删除也能继续存在。

容器的数据卷

为容器添加数据卷

使用 -v 参数可将宿主机路径与容器路径挂载(同步)。例如:

docker run -v /centos/mydata:/data -it centos

这样可将容器内的 /data 目录与宿主机的 /centos/mydata 挂载同步。即使删除容器,数据卷仍然存在。

创建数据卷

数据卷可通过以下命令创建和管理:

docker volume create mycentos
docker volume ls
docker volume inspect mycentos
docker volume rm mycentos

为数据卷添加访问权限

通过 :ro 参数设置数据卷为只读。例如:

docker run -v /centos/mydata:/data:ro -it centos

这样容器内的数据卷目录变为只读,无法创建文件。

使用Dockerfile构建包含数据卷的镜像

在Dockerfile中使用 VOLUME 指令定义数据卷。例如:

FROM nexus.gree.com/centos
VOLUME ["/mycentos1","/mycentos2"]
CMD /bin/bash

构建镜像后启动容器,会自动创建定义的多个数据卷。

Docker的数据卷容器

什么是数据卷容器

数据卷容器是挂载数据卷的容器,其他容器可通过它实现数据共享。

使用 --volumes-from 参数挂载数据卷容器。例如:

docker run --name mycentos3 -it mycentos:v1
docker run --name mycentos4 --volumes-from mycentos3 -it mycentos:v1

新容器可访问数据卷容器中的数据。

Docker cp指令

Docker cp指令用于容器与宿主机间的数据复制,有两种格式:

docker cp CONTAINER:SRC_PATH DEST_PATH
docker cp SRC_PATH CONTAINER:DEST_PATH

示例:

docker cp /mydata/test 8899992:/mydata
docker cp 8899992:/mydata /mydata/

选项 -L 可保持源目标中的链接。

springboot葵花宝典

主要分享JAVA技术,主要包含SpringBoot、SpingCloud、Docker、中间件等技术,以及Github开源项目

273 篇文章
浏览 236.1K

还在用多套工具管项目?

一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。

加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线