百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

docker 的持久化存储和数据共享 docker 的持久化存储和数据共享的区别

bigegpt 2024-10-03 14:56 3 浏览

数据持久化的意义

容器中数据存在丢失的风险。因为我们可能会关闭和删除容器。这样容器中的数据也会跟着被删除。所以往往我们都不把数据存放到容器中,而是做一个映射,实现 docker 的持久化存储。

数据持久化方案

常用的数据持久化方案有两个:

  • 基于本地文件系统的 Volume
  • 基于 plugin 的 Volume

Volume 的类型

  • 受管理的 data Volume:由 docker 后台自动创建
  • 绑定挂载的 Volume:具体挂载位置可以由用户指定

数据持久化 data Volume

在 docker hub 网站 https://hub.docker.com/ 搜 MySQL,可以看到官方的 Dockerfile 中也定义了 VOLUME

前边的容器和镜像如果没用,可以清理一下:

docker stop $(docker container ls -q)
docker rm $(docker container ls -aq)
docker rmi $(docker image ls -q)
docker volume rm $(docker volume ls -q)

后台启动个 MySQL:

docker run -d --name mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=yes mysql

查看 docker 所有的持久化到本地的数据文件:

[root@node01 ~]# docker volume ls
DRIVER              VOLUME NAME
local               fc2a378cce707121c183b340db87b975c341468cfd561348471410779b578c99

可以看到存到了本地的哪里:

[root@node01 ~]# docker volume inspect fc2a378cce707121c183b340db87b975c341468cfd561348471410779b578c99
[
    {
        "CreatedAt": "2020-04-30T23:12:11+08:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/fc2a378cce707121c183b340db87b975c341468cfd561348471410779b578c99/_data",
        "Name": "fc2a378cce707121c183b340db87b975c341468cfd561348471410779b578c99",
        "Options": null,
        "Scope": "local"
    }
]

可以看到,数据缓存到了 /var/lib/docker/volumes/ 目录下。

可以清除不被引用的数据文件:

docker volume prune

启动容器,指定持久化数据目录文件:

[root@node01 ~]# docker run -d -v mysql:/var/lib/mysql --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes mysql
43980a027b48ca9b4c9e6960ecbdf9d8bc273427f6bc3032e94ffd5259b4cd05

进入容器的 MySQL:

[root@node01 ~]# docker exec -it mysql1 /bin/bash
root@43980a027b48:/# mysql -uroot

随便写点东西退出:

mysql> create database py;
Query OK, 1 row affected (0.01 sec)
mysql> exit
Bye
root@43980a027b48:/# 

关闭并删除容器:

[root@node01 ~]# docker stop mysql1
mysql1
[root@node01 ~]# docker rm mysql1
mysql1

指定与之前相同的数据同步位置,重新开启一个 MySQL 容器:

docker run -d -v mysql:/var/lib/mysql --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes mysql

交互运行,并进入到 MySQL 中:

[root@node01 ~]# docker exec -it mysql1 /bin/bash
root@28fbe43b1989:/# mysql -uroot

可以查看到数据已经自动导入:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| py                 |
| sys                |
+--------------------+
5 rows in set (0.01 sec)

数据持久化 bind mouting

可以指定一个与容器同步的文件夹,容器中的文件如果发生变化,宿主机的文件也会同步发生变化。

找个目录,创建个文件,写点东西:

[root@node01 ~]# cd /home
[root@node01 home]# mkdir nginx
[root@node01 home]# cd nginx
[root@node01 nginx]# vi index.html

index.html 中写入如下内容:

<h1>hello docker!</h1>

编写 dockerfile:

vi Dockerfile

在其中写入如下内容:

FROM nginx:latest
WORKDIR /usr/share/nginx/html
COPY index.html index.html

构建镜像:

docker build -t nginx .

启动容器,挂载目录,关联宿主机的 80 端口:

docker run -d --name web -v /home/nginx/:/usr/share/nginx/html -p 80:80 nginx

浏览器访问宿主机 IP,即可看到我们刚刚创建的 HTML 文件:

此时,修改本地 index.html 文件:

[root@node01 nginx]# pwd
/home/nginx
[root@node01 nginx]# vi index.html

将其修改为:

<h1>hello docker!</h1>
<h2>Nice to meet you!</h2>

刷新页面,发现容器中的文件也发生了改变:

相关推荐

有些人能留在你的心里,但不能留在你生活里。

有时候,你必须要明白,有些人能留在你的心里,但不能留在你生活里。Sometimes,youhavetorealize,Somepeoplecanstayinyourheart,...

Python学不会来打我(34)python函数爬取百度图片_附源码

随着人工智能和大数据的发展,图像数据的获取变得越来越重要。作为Python初学者,掌握如何从网页中抓取图片并保存到本地是一项非常实用的技能。本文将手把手教你使用Python函数编写一个简单的百度图片...

软网推荐:图像变变变 一“软”见分晓

当我们仅需要改变一些图片的分辨率、裁减尺寸、添加水印、标注文本、更改图片颜色,或将一种图片转换为另一种格式时,总比较讨厌使用一些大型的图像处理软件,尤其是当尚未安装此类软件时,更是如此。实际上,只需一...

首款WP8.1图片搜索应用,搜照片得资料

首款WP8.1图片搜索应用,搜照片得资料出处:IT之家原创(天际)2014-11-1114:32:15评论WP之家报道,《反向图片搜索》(ReverseImageSearch)是Window...

分享一组美图(图片来自头条)(头条美女头像)

...

盗墓笔记电视剧精美海报 盗墓笔记电视剧全集高清种子下载

出身“老九门”世家的吴邪,因身为考古学家的父母在某次保护国家文物行动时被国外盗墓团伙杀害,吴家为保护吴邪安全将他送去德国读书,因而吴邪对“考古”事业有着与生俱来的兴趣。在一次护宝过程中他偶然获得一张...

微软调整Win11 24H2装机策略:6月起36款预装应用改为完整版

IT之家7月16日消息,微软公司今天(7月16日)发布公告,表示自今年6月更新开始,已默认更新Windows1124H2和WindowsServer2025系统中预装...

谷歌手把手教你成为谣言终结者 | 域外

刺猬公社出品,必属原创,严禁转载。合作事宜,请联系微信号:yunlugongby贾宸琰编译、整理11月23日,由谷歌新闻实验室(GoogleNewsLab)联合Bellingcat、DigD...

NAS 部署网盘资源搜索神器:全网资源一键搜,免费看剧听歌超爽!

还在为找不到想看的电影、电视剧、音乐而烦恼?还在各个网盘之间来回切换,浪费大量时间?今天就教你如何在NAS上部署aipan-netdisk-search,一款强大的网盘资源搜索神器,让你全网资源...

使用 Docker Compose 简化 INFINI Console 与 Easysearch 环境搭建

前言回顾在上一篇文章《搭建持久化的INFINIConsole与Easysearch容器环境》中,我们详细介绍了如何使用基础的dockerrun命令,手动启动和配置INFINICon...

为庆祝杜特尔特到访,这个国家宣布全国放假?

(观察者网讯)近日,一篇流传甚广的脸书推文称,为庆祝杜特尔特去年访问印度,印度宣布全国放假,并举办了街头集会以示欢迎。菲媒对此做出澄清,这则消息其实是“假新闻”。据《菲律宾世界日报》2日报道,该贴子...

一课译词:毛骨悚然(毛骨悚然的意思是?)

PhotobyMoosePhotosfromPexels“毛骨悚然”,汉语成语,意思是毛发竖起,脊梁骨发冷;形容恐惧惊骇的样子(withone'shairstandingonend...

Bing Overtakes Google in China&#39;s PC Search Market, Fueled by AI and Microsoft Ecosystem

ScreenshotofBingChinahomepageTMTPOST--Inastunningturnintheglobalsearchenginerace,Mic...

找图不求人!6个以图搜图的识图网站推荐

【本文由小黑盒作者@crystalz于03月08日发布,转载请标明出处!】前言以图搜图,专业说法叫“反向图片搜索引擎”,是专门用来搜索相似图片、原始图片或图片来源的方法。常用来寻找现有图片的原始发布出...

浏览器功能和“油管”有什么关联?为什么要下载

现在有没有一款插件可以实现全部的功能,同时占用又小呢,主题主要是网站的一个外观,而且插件则主要是实现wordpress网站的一些功能,它不仅仅可以定制网站的外观,还可以实现很多插件的功能,搭载chro...