加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 云计算 > 正文

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

发布时间:2022-07-01 03:29:17 所属栏目:云计算 来源:互联网
导读:如果您没有注意到,每次我们启动容器时,我们的待办事项列表都会被清除干净。为什么是这样?让我们深入了解容器是如何工作的。 当一个容器运行时,它使用图像中的各个层作为其文件系统。每个容器还有自己的暂存空间来创建/更新/删除文件。任何更改都不会在
  如果您没有注意到,每次我们启动容器时,我们的待办事项列表都会被清除干净。为什么是这样?让我们深入了解容器是如何工作的。
 
  当一个容器运行时,它使用图像中的各个层作为其文件系统。每个容器还有自己的“暂存空间”来创建/更新/删除文件。任何更改都不会在另一个容器中看到,即使它们使用相同的图像。
 
  为了看到这一点,我们将启动两个容器并在每个容器中创建一个文件。您将看到在一个容器中创建的文件在另一个容器中不可用。
 
  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 并调用两个命令(为什么我们有&&)。第一部分选择一个随机数并将其写入/data.txt. 第二个命令只是监视一个文件以保持容器运行。
 云计算核心技术Docker教案 容器持久化数据
  2.验证我们可以通过execing 到容器中看到输出。为此,请打开仪表板并单击运行ubuntu映像的容器的第一个操作。
 
  您将看到一个终端在 ubuntu 容器中运行 shell。运行以下命令以查看/data.txt文件的内容。之后再次关闭此终端。
 
  3.现在,让我们启动另一个ubuntu容器(相同的图像),我们会看到我们没有相同的文件。
 
  $ docker run -it ubuntu ls /
 
  看!那里没有data.txt文件!那是因为它仅被写入第一个容器的暂存空间。
 
  4.继续并使用docker rm -f <container-id>命令删除第一个容器。
 
  通过前面的实验,我们看到每个容器每次启动都是从镜像定义开始的。虽然容器可以创建、更新和删除文件,但当容器被移除并且所有更改都与该容器隔离时,这些更改会丢失。有了卷,我们可以改变这一切。
 
  默认情况下,待办事项应用程序将其数据存储在容器文件系统中的SQLite 数据库中。/etc/todos/todo.db如果你不熟悉 SQLite,不用担心!它只是一个关系数据库,其中所有数据都存储在一个文件中。虽然这对于大型应用程序来说不是最好的,但它适用于小型演示。稍后我们将讨论将其切换到不同的数据库引擎。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读