docker数据管理

一.创建数据卷volume

在这里存着

二、绑定数据卷

在用docker container run命令的时候,可以使用-mount选项来使用数据卷。

(1)volume:普通数据卷,映射到主机/var/lib/docker/volumes路径下;

(2)bind:绑定数据卷,映射到主机指定路径下

(3)tmpfs:临时数据卷,只存在于内存中。

下面使用training/webapp镜像创建一个Web容器,并创建一个数据卷挂载到容器的/opt/webapp目录:

出现下面的这个报错,我们得先创建才能做

用这个创建mkdir /webapp

因为各种原因弄不下来,我们先删掉吧

我们就用本地的镜像吧

还是终止状态的启动不起来

你得给他一个指令才能运行,还是删了吧,换另一个

换这个,我们可以看到我的32768跟80端口做了映射,然后挂载我把本地的web挂载了

我们随便选一个eg. 拷一个index.html到/webapp/里面去

然后进到容器里面去

注意:本地目录的路径必须是绝对路径,容器内路径可以为相对路径。如果目录不存在,Docker会自动创建。

Docker挂载数据卷的默认权限是读写(rw),用户也可以通过ro指定为只读

写进去了

我们本地里面也有了

如果让只读挂的话

docker run -d -P --name web -v /webapp:/opt/webapp:ro nginx:1.17.1(加个ro就行)

三、数据卷容器

多个容器共享一些数据的话,就叫数据卷容器

1.创建一个数据卷容器dbdata,并在其中创建一个数据卷挂载到/dbdata;

2.然后创建db1容器和db2容器

因为,容器db1和db2都挂载同一个数据卷到相同的/dbdata目录,三个容器任何一方在该目录下写入,其他容器都可以看到

在这个写错了删掉

改成这个

然后就可以了,发现在其他容器里也可以看见里面内容

3.可以多次使用--volumes-from参数来从多个容器挂载多个数据卷,还可以从其他已经挂载了容器卷的容器来挂载数据卷

这个db3没有运行

注意:使用--volumes-from参数所挂载数据卷的容器自身并不需要保持在运行状态

如果删除了挂载容器(包括dbdata、db1、db2),数据卷不会自动删除

因为还在挂载着呢,所以删的时候要带-v

四、利用数据卷容器来迁移数据

因为前面删了,我们现在重新弄,有了dbdata才能弄

1.备份

2.恢复

emmm有点问题

删一些重弄

加-it是保持进入到那个终端里面的,现在是空的

然后我们在另一个终端里面给他还原

ok成功

相关推荐
2601_9605679625 分钟前
电商套图自动化效率的工程量化分析——从逐张生成到批量套图的架构演进
运维·架构·自动化
吳所畏惧1 小时前
宝塔面板Redis密码修改指南:SSH命令修改 vs 面板UI界面修改,哪个更靠谱?
运维·服务器·数据库·redis·缓存·ssh
张忠琳1 小时前
【NVIDIA】 NVIDIA Container Toolkit v1.19.1 — OCI 模块超深度分析之三
云原生·容器·架构·kubernetes·nvidia
HiDev_2 小时前
【非标自动化】2、认识元器件(确定目标)
运维·自动化
Zhang~Ling2 小时前
从 fopen 到 struct file:从零开始拆解 Linux 文件 I/O
linux·运维·服务器
爱写代码的森3 小时前
蒙三方库 | harmony-utils之FileUtil文件重命名与属性查询详解
linux·运维·服务器·华为·harmonyos·鸿蒙·huawei
Elastic 中国社区官方博客3 小时前
将你的 Grafana Kubernetes 仪表板迁移到 Elastic Observability:相同的 PromQL,30 倍更快的查询
大数据·人工智能·elasticsearch·搜索引擎·容器·kubernetes·grafana
中微极客3 小时前
2026主流AI Agent框架技术选型与性能对比
运维·网络·人工智能
久曲健的测试窝3 小时前
智能座舱自动化测试落地方案:数字仿真搭配实车实测,解决用例运维与场景失真难题
运维
AOwhisky4 小时前
Python 学习笔记(第十五期)——运维自动化(下·后篇):堡垒机实战——paramiko高阶篇
运维·python·学习·云原生·自动化·运维开发