当前位置:首页 > 科技  > 知识百科

云计算核心技术Docker教程:容器持久化数据

来源: 责编: 时间:2023-08-07 16:30:07 356观看
导读 如果您没有注意到,每次我们启动容器时,我们的待办事项列表都会被清除干净。为什么是这样?让我们深入了解容器是如何工作的。容器的文件系统当一个容器运行时,它使用图像中的各个

如果您没有注意到,每次我们启动容器时,我们的待办事项列表都会被清除干净。为什么是这样?让我们深入了解容器是如何工作的。0A928资讯网——每日最新资讯28at.com

容器的文件系统0A928资讯网——每日最新资讯28at.com

当一个容器运行时,它使用图像中的各个层作为其文件系统。每个容器还有自己的“暂存空间”来创建/更新/删除文件。任何更改都不会在另一个容器中看到,即使它们使用相同的图像。0A928资讯网——每日最新资讯28at.com

为了看到这一点,我们将启动两个容器并在每个容器中创建一个文件。您将看到在一个容器中创建的文件在另一个容器中不可用。0A928资讯网——每日最新资讯28at.com

1.启动一个ubuntu容器,该容器将创建一个以/data.txt1 到 10000 之间的随机数命名的文件。0A928资讯网——每日最新资讯28at.com

docker run -d ubuntu bash -c "shuf -i 1-10000 -n 1 -o /data.txt && tail -f /dev/null"0A928资讯网——每日最新资讯28at.com

如果您对该命令感到好奇,我们将启动一个 bash shell 并调用两个命令(为什么我们有&&)。第一部分选择一个随机数并将其写入/data.txt. 第二个命令只是监视一个文件以保持容器运行。0A928资讯网——每日最新资讯28at.com

2.验证我们可以通过execing 到容器中看到输出。为此,请打开仪表板并单击运行ubuntu映像的容器的第一个操作。0A928资讯网——每日最新资讯28at.com

QQ截图202204021516490A928资讯网——每日最新资讯28at.com

您将看到一个终端在 ubuntu 容器中运行 shell。运行以下命令以查看/data.txt文件的内容。之后再次关闭此终端。0A928资讯网——每日最新资讯28at.com

$ cat /data.txt0A928资讯网——每日最新资讯28at.com

如果您更喜欢命令行,您可以使用该docker exec命令来执行相同的操作。您需要获取容器的ID(用于docker ps获取它)并使用以下命令获取内容。0A928资讯网——每日最新资讯28at.com

$ docker exec <container-id> cat /data.txt0A928资讯网——每日最新资讯28at.com

你应该看到一个随机数!0A928资讯网——每日最新资讯28at.com

3.现在,让我们启动另一个ubuntu容器(相同的图像),我们会看到我们没有相同的文件。0A928资讯网——每日最新资讯28at.com

$ docker run -it ubuntu ls /0A928资讯网——每日最新资讯28at.com

看!那里没有data.txt文件!那是因为它仅被写入第一个容器的暂存空间。0A928资讯网——每日最新资讯28at.com

4.继续并使用docker rm -f <container-id>命令删除第一个容器。0A928资讯网——每日最新资讯28at.com

通过前面的实验,我们看到每个容器每次启动都是从镜像定义开始的。虽然容器可以创建、更新和删除文件,但当容器被移除并且所有更改都与该容器隔离时,这些更改会丢失。有了卷,我们可以改变这一切。0A928资讯网——每日最新资讯28at.com

卷提供了将容器的特定文件系统路径连接回主机的能力。如果容器中的目录已挂载,则该目录中的更改也会在主机上看到。如果我们在容器重启时挂载相同的目录,我们会看到相同的文件。0A928资讯网——每日最新资讯28at.com

卷有两种主要类型。我们最终将同时使用两者,但我们将从命名卷开始。0A928资讯网——每日最新资讯28at.com

持久化数据0A928资讯网——每日最新资讯28at.com

默认情况下,待办事项应用程序将其数据存储在容器文件系统中的SQLite 数据库中。/etc/todos/todo.db如果你不熟悉 SQLite,不用担心!它只是一个关系数据库,其中所有数据都存储在一个文件中。虽然这对于大型应用程序来说不是最好的,但它适用于小型演示。稍后我们将讨论将其切换到不同的数据库引擎。0A928资讯网——每日最新资讯28at.com

由于数据库是单个文件,如果我们可以将该文件保存在主机上并使其可用于下一个容器,它应该能够从最后一个停止的地方继续。通过创建一个卷并将其附加(通常称为“挂载”)到存储数据的目录,我们可以持久化数据。当我们的容器写入todo.db文件时,它将被持久化到卷中的主机。0A928资讯网——每日最新资讯28at.com

如前所述,我们将使用命名卷。将命名卷视为简单的数据桶。Docker 维护磁盘上的物理位置,您只需要记住卷的名称。每次使用卷时,Docker 都会确保提供正确的数据。0A928资讯网——每日最新资讯28at.com

1.使用docker volume create命令创建卷。0A928资讯网——每日最新资讯28at.com

$ docker volume create todo-db0A928资讯网——每日最新资讯28at.com

2.在仪表板(或使用 )中再次停止并删除待办事项应用程序容器docker rm -f <id>,因为它仍在运行而不使用持久卷。0A928资讯网——每日最新资讯28at.com

3.启动 todo 应用程序容器,但添加-v标志以指定卷安装。我们将使用命名卷并将其挂载到/etc/todos,这将捕获在该路径创建的所有文件。0A928资讯网——每日最新资讯28at.com

$ docker run -dp 3000:3000 -v todo-db:/etc/todos getting-started0A928资讯网——每日最新资讯28at.com

4.容器启动后,打开应用程序并将一些项目添加到您的待办事项列表中。0A928资讯网——每日最新资讯28at.com

5.停止并删除 todo 应用程序的容器。使用仪表板或docker ps获取 ID,然后docker rm -f <id>将其删除。0A928资讯网——每日最新资讯28at.com

6.使用上面的相同命令启动一个新容器。0A928资讯网——每日最新资讯28at.com

7.打开应用程序。您应该会看到您的项目仍在您的列表中!0A928资讯网——每日最新资讯28at.com

8.完成检查列表后,继续删除容器。0A928资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-119-2257-0.html云计算核心技术Docker教程:容器持久化数据

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: AMD宣布斥资19亿美元收购云计算创企Pensando

下一篇: 卷积神经网络性能优化

标签:
  • 热门焦点
  • 6月安卓手机性能榜:vivo/iQOO霸占旗舰排行榜前三

    2023年上半年已经正式过去了,我们也迎来了安兔兔V10版本,在新的骁龙8Gen3和天玑9300发布之前,性能榜的榜单大体会以骁龙8Gen2和天玑9200+为主,至于那颗3.36GHz的骁龙8Gen2领先
  • 一篇聊聊Go错误封装机制

    %w 是用于错误包装(Error Wrapping)的格式化动词。它是用于 fmt.Errorf 和 fmt.Sprintf 函数中的一个特殊格式化动词,用于将一个错误(或其他可打印的值)包装在一个新的错误中。使
  • 共享单车的故事讲到哪了?

    来源丨海克财经与共享充电宝相差不多,共享单车已很久没有被国内热点新闻关照到了。除了一再涨价和用户直呼用不起了。近日多家媒体再发报道称,成都、天津、郑州等地多个共享单
  • 腾讯VS网易,最卷游戏暑期档,谁能笑到最后?

    作者:无锈钵来源:财经无忌7月16日晚,上海1862时尚艺术中心。伴随着幻象的精准命中,硕大的荧幕之上,比分被定格在了14:12,被寄予厚望的EDG战队以绝对的优势战胜了BLG战队,拿下了总决
  • “又被陈思诚骗了”

    作者|张思齐 出品|众面(ID:ZhongMian_ZM)如今的国产悬疑电影,成了陈思诚的天下。最近大爆电影《消失的她》票房突破30亿断层夺魁暑期档,陈思诚再度风头无两。你可以说陈思诚的
  • 消费结构调整丨巨头低价博弈,拼多多还卷得动吗?

    来源:征探财经作者:陈香羽随着流量红利的退潮,电商的存量博弈越来越明显。曾经主攻中高端与品质的淘宝天猫、京东重拾&ldquo;低价&rdquo;口号。而过去与他们错位竞争的拼多多,靠
  • 小米公益基金会捐赠2500万元驰援北京、河北暴雨救灾

    8月2日消息,今日小米科技创始人雷军在其微博上发布消息称,小米公益基金会宣布捐赠2500万元驰援北京、河北暴雨救灾。携手抗灾,京冀安康!以下为公告原文
  • iQOO Neo8 Pro即将开售:到手价3099元起 安卓性能最强旗舰

    5月23日,iQOO如期举行了新品发布会,全新的iQOO Neo8系列也正式与大家见面,包含iQOO Neo8和iQOO Neo8 Pro两个版本,其中标准版搭载高通骁龙8+,而Pro版更
  • 英特尔Xe HPG游戏显卡:拥有512EU,单风扇版本

    据10 月 30 日外媒 TheVerge 消息报道,英特尔 Xe HPG Arc Alchemist 的正面实被曝光,不仅拥有 512 EU 版显卡,还拥有 128EU 的单风扇版本。另外,这款显卡 PCB
Top