云计算核心技术Docker教程:容器持久化数据
如果您没有注意到,每次我们启动容器时,我们的待办事项列表都会被清除干净。为什么是这样?让我们深入了解容器是如何工作的。
容器的文件系统
当一个容器运行时,它使用图像中的各个层作为其文件系统。每个容器还有自己的“暂存空间”来创建/更新/删除文件。任何更改都不云计会在另一个容器中看到,即使它们使用相同的图像。
为了看到这一点,我们将启动两个容器并在每个容器中创建一个文件。您将看到在一个容器中创建的文件在另一个容器中不可用。
1.启动一个ubuntu容器,该容器将创建一个以/data.txt1 到 10000 之间的随机数命名的文算核件。
docker run -d ubuntu bash -c "shuf -i 1-10000 -n 1 -o /data.txt && tail -f /dev/null"
如果您对该命令感到好奇,我们将启动一个 bash shell 并调用两个命令(为什么我们有&&心技amp;)。第一部分选择一个随机数并将其写入/data.txt. 第二个命令只是监视一个文件以保持容器运行。
2.验证我们可以通过execing 到容器中看到输出。为此,请打开仪表板并单击运行ubuntu映像的容器的第一个操作。
您将看到一个终端在 ubuntu 容器中运术D行 shell。运行以下命令以查看/data.txt文件的内容。之后再次关闭此终端。
$ cat /data.txt
如果您更喜欢命令行,您可以使用该docker exec命令来执行相同的操作。您需要获取容器的ID(用于docker ps获取它)并使用以下命令获取内oc容。
$ docker exec <container-id> cat /data.txt
你应该看到一个随机数!
3.现在,让我们启动另一个ubuntu容器(相同的图像),我们会看到我们没有相同的文件。
$ docker run -it ubuntu ls /
看!那里没有kedata.txt文件!那是因为它仅被写入第一个容器的暂存空间。
4.继续并使用docker rm -f <container-id>命令删除第一个容器。
通过前面的实验,我们看到每个容器每次启动都是从镜像定义开始的。虽然容器可以创建、更新和删除文件,但r教当容器被移除并且所有更改都与该容器隔离时,这些更改会丢失。有了卷,我们可以改变这一切。
卷提供了将容器的特定文件系统路径连接回主机的能力。如果容器中的目录已挂载,则该目录中的更改也会在主机上看到。如果我们在容器重启时挂载相同的目录,我们会看到相同的文件。
卷程:有两种主要类型。我们最终将同时使用两者,但我们将从命名卷开始。
持久化数据
默认情况下,待办事项应用程序将其数据存储在容器文件系统中的SQLite 数据库中。/etc/todos/todo.db如果你不熟悉 SQLite,不用担心!它只是一个关系数据库,其中所有数据都容器存储在一个文件中。虽然这对于大型应用程序来说不是最好的,但它适用于小型演示。稍后我们将讨论将其切换到不同的数据库引擎。
由于数据库是单个文件,如果我们可以将该文件保存在主机上并使其可用于下一个容器,它应该能够从最后一个停止的地方继续。通过创建一个卷并将其附持久加(通常称为“挂载”)到存储数据的目录,我们可以持久化数据。当我们的容器写入todo.db文件时,它将被持久化到卷中的主机。
如前所述,我们将使用命名卷。将命名卷视为简单的数据桶。Docker 维护磁盘上的物理位置,您只需要记住卷的名称。每次使用卷时,Docke化数r 都会确保提供正确的数据。
1.使用docker volume create命令创建卷。
$ docker volume create todo-db
2.在仪表板(或使用 )中再次停止并删除待办事项应用程序容器docker rm -f <id>,因为它仍在运行而不云计使用持久卷。
3.启动 todo 应用程序容器,但添加-v标志以指定卷安装。我们将使用命名卷并将其挂载到/etc/todos,这将捕获在该路径创建的所有文件。
$ docker run -dp 3000:3000 -v todo-db:/etc/todos getting-s算核tarted
4.容器启动后,打开应用程序并将一些项目添加到您的待办事项列表中。
5.停止并删除 todo 应用程序的容器。使用仪表板或docker ps获取 ID,然后docker rm -f <id>将其删除。
6.使用上面的相同命令启动一个新容器。
7.打开应心技用程序。您应该会看到您的项目仍在您的列表中!
8.完成检查列表后,继续删除容器。
- ·亚马逊云科技连续三届支持世界技能大赛云计算赛项
- ·标签: 小鹏汽车 财报 2025年Q3 毛利率
- ·标签: 红果短剧 抖音集团 李亮 真人微短剧
- ·特朗普改口盛赞 Anthropic,五角大楼黑名单风波有望反转
- ·AI 创业公司的新秀:a16z 揭示前50名潜力股
- ·标签: 梅赛德斯-奔驰 段建军 李德思 smart
- ·标签: 360 张永生 阿里巴巴 百度
- ·标签: 日产 敏实集团 KKR 汽车零部件
- ·标签: 小马智行 Robotaxi 港股上市 自动驾驶
- ·寰�蒋楂樼�瑙h�2021璐㈠勾Q4璐㈡姤锛氫簯涓氬姟澧為暱鏄�暱鏈熸寔涔呯殑
- ·标签: 无界动力 K15机器人 远景科技 MWA™
- ·标签: 中芯国际 晶圆代工 BCD MCU
- ·标签: 零食行业
- ·AWS发布针对Amazon EC2的Apple macOS实例
- ·标签: 深之蓝 Sublue IPO 水下机器人
- ·科学家「黑进」果蝇大脑跑NLP任务,发现效率比BERT高
- ·标签: 途虎-W 途虎养车 新能源售后 汽车服务
- ·微软前董事长:CEO纳德拉赢得了成为董事长的权利
- ·DuckDuckGo 将 GPT-5等高级 AI 模型整合进其隐私保护订阅服务
- ·传苹果公司与多家激光雷达供应商展开合作谈判
- ·网易有道文档翻译功能免费开放,搭载“子曰”教育大模型提升多语种交流效率
- ·腾讯发布自研第四代大数据平台
- ·标签: 华科冷芯 高速悬浮泵 AIDC 液冷技术
- ·马斯克发布Grok Imagine 0.1版本,野心打造"宇宙最强想象力放大器"
- ·Salesforce 引入 AI 代理,裁员 4000 人以提升业务效率
- ·标签: 天美G1工作室 高敏 VincentGao 腾讯游戏
- ·https://www.routesonline.com/search/?query=谷歌霸屏软件【tg:seogoogle987】,joe
- ·https://www.lechzuers.com/de/search?cat=163&q=谷歌霸屏软件【tg:seogoogle987】,QZl
- ·https://www.parl.ca/legisinfo/fr/projets-de-loi?parlsession=all&view=list&keywords=谷歌霸屏软件【tg:seogoogle987】,kXh
- ·https://www.ucycle.com/search/=谷歌霸屏软件【tg:seogoogle987】,kVL
- ·https://www.mintos.org/?s=谷歌霸屏软件【tg:seogoogle987】,mxu
- ·https://blvdseafood.com/?s=谷歌霸屏软件【tg:seogoogle987】D27
- ·https://www.xvideos.com/tags/谷歌霸屏软件【tg:seogoogle987】,3uB
- ·https://www.umc.edu/search.aspx?ID=I4gnDKRS991MFcIDDzoYze4aWSAszAm7&q=谷歌霸屏软件【tg:seogoogle987】,x4a
- ·https://hsmoa.com/search?query=谷歌霸屏软件【tg:seogoogle987】rhV
- ·https://www.skicheck.at/en/?action=CHECK&s=谷歌霸屏软件【tg:seogoogle987】,a4K
- ·云工程师应该学习的5种编程语言
- ·标签: 富瀚微 视觉AI芯片 智能视频 车载ISP
- ·标签: WAIC2026 具身智能 智算 WAIC_Academic
- ·标签: 德州仪器 芯科科技 Silicon Labs 嵌入式无线连接
- ·标签: 小马智行 Robotaxi 自动驾驶 财报
- ·标签: 银河通用 人形机器人 宁德时代 医疗康养
- ·云安全日报220224:IBM混合云数据库发现执行任意代码漏洞,需要尽快升级
- ·标签: 汽车之家 AI助手 天枢平台 知家传媒
- ·标签: SK海力士 纳斯达克 IPO EUV光刻机
- ·苹果iCloud中国贵安数据中心建成 减少延迟、提升 iCloud 用户体验
