docker之容器数据持久化

1.挂载本地目录为容器的数据存放目录

 [root@node03 ~]# docker run -itd --name web01 -v /container_data/web:/data ubuntu

[root@node03 ~]# docker inspect web01

2.到挂载的目录下面创建一个文件

[root@node03 ~]# cd /container_data/web/
[root@node03 web]# ls
[root@node03 web]# touch test.index

3、查看web01容器下面的data目录是否存在刚才创建的文件

[root@node03 ~]# docker exec web01 ls /data

4、在创建一个web02 的容器,也挂载相同的目录,看看刚才的文件是否还存在

[root@node03 ~]# docker run -itd --name web02 -v /container_data/web:/data ubuntu

二、 容器 数据卷

创建一个dvdata的数据卷容器:

[root@node03 ~]# docker run -itd -v /data --name dvdata ubuntu   

注:/data是数据卷容器内共享的目录

在其他容器中挂载dvdata容器的数据卷:


[root@node03 ~]# docker run -itd --name web01 --volumes-from dvdata ubuntu

分别进入web1、web2容器中,会有一个/data目录,在web1里的/data目录创建文件,web2也能看的到。

总结: 如果删除dvdata、web1、web2,时,数据卷并不会被自动删除。如果想删除需在删除最后一个挂载着它的容器时使用docker rm -v 命令来指定删除关联的容器。

[root@node03 ~]# docker exec dvdata touch /data/index.php
[root@node03 ~]# docker exec dvdata ls /data
index.php
[root@node03 ~]# docker exec web01 ls /data
index.php
[root@node03 ~]# docker run -itd --name web02 --volumes-from dvdata ubuntu
a0afc3cbf251af427eea2ca89ae94c07dcb537643414830405e805d1ea6be962
[root@node03 ~]# docker exec web02 ls /data
index.php

 

 

posted @   Mr.zou  阅读(277)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构

点击右上角即可分享
微信分享提示