Docker基础-Docker数据管理
1|01、数据卷
数据卷是一个可供容器使用的特殊目录,它将主机操作系统目录直接映射进容器,类似于Linux中的mount操作。
数据卷可以提供很多有用的特性:
1|11.在容器内创建一个数据卷
在使用docker run命令的时候,使用-v参数在容器内创建一个数据卷。多次重复使用可以创建多个数据卷。
举例如下:
可以看到容器里内已经存在一个数据卷:nginxdata
-p参数是暴露指定的容器服务端口到宿主机,其中 -p 80:80中,:前面的是宿主机的端口,:后面的是容器内暴露的端口,可以理解为将容器内暴露的端口绑定到宿主机。
1|22.挂载一个主机目录作为数据卷
使用-v参数也可以指定挂载一个本地目录到容器中去作为数据卷(推荐方式)。
举例如下:
上面的:-v /data/nginxdata/:/opt/nginxdata是指将本地的/data/nginxdata/挂载到容器中的/opt/nginxdata作为数据卷。
在容器nginx_3中的/opt/nginxdata目录中创建一个test.txt并写入"write in container"然后退出容器,在/data/nginxdata/中也存在这个文件和内容。
当然,在本地写入数据之后,在容器中也是立即生效的:
1|33.挂载一个本地文件作为数据卷
-v参数也可以指定一个本地文件挂载到容器中作为数据卷(不推荐)。
把指定的index.html文件挂载到容器中nginx的网站空间/usr/share/nginx/html/中,并把原先的index.html替换掉了。
注意:
如果直接挂载一个文件到容器中,使用文件编辑工具,包括vi、vim或者sed --in-place的时候可能会造成文件inode的改变,从Dcker1.1.0起,会报错;推荐使用的方式是直接挂载文件所在的目录。
2|02、数据卷容器
如果用户需要在多个容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器。数据卷容器也是一个容器,但是它的目的是专门用来提供数据卷供其他容器挂载。
首先,创建一个数据卷容器,并在容器内创建一个数据卷挂载到/dbdata:
查看/dbdata目录:
在其他容器中使用--volumes-from来挂载dbdata容器中的数据卷:
创建db1和db2两个容器,都挂载在dbdata上,可以在两个容器中都能看到dbdata目录:
在dbdata容器的dbdata目录中写入数据:
分别在db1和db2中查看:
db1中查看:
db2中查看:
最后在dbdata容器中查看分别在db1和db2中写入的数据:
可以多次使用--volumes-from参数来从多个容器挂载多个数据卷。还可以从其他已经挂载了容器卷的容器来挂载数据卷。
举例如下:
注意:
1.使用--volumes-from参数所挂载数据卷的容器自身并不需要保持在运行状态。
2.如果删除了挂载的容器(包括dbdata、db1和db2),数据卷并不会自动删除。如果要删除一个数据卷,必须在删除最后一个还挂载着它的容器时使用docker rm -v命令来指定同时删除关联的容器。
3|03、利用数据卷容器来迁移数据
可以利用数据卷容器对其中的数据卷进行备份、恢复,以实现数据的迁移。=
3|11.备份
命令解释:
查看本地当前目录:
3|22.恢复
要将备份好的数据恢复到一个容器,先要创建一个带有数据卷的容器dbdata2,然后另建一个新的容器,挂载dbdata2的,并使用untar解压备份文件到所挂载的容器卷中。
举例如下:
在新的数据卷容器dbdata2中可以查案恢复结果:
__EOF__

本文链接:https://www.cnblogs.com/jie-fang/p/7920201.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律