具有初始数据的 docker postgres 不会在提交时保留

2023-11-24

我在 Docker 环境中创建了一个 Rails 应用程序,它链接到一个 postgres 实例。我编辑了 postgres 容器添加初始数据(通过从 Rails 应用程序运行 rake db:setup)。现在我提交了 postgres 数据库,但当我创建一个新容器(提交的 postgres 映像)时,它似乎不记得我的数据。

是否可以在提交中保存数据,然后再使用它?

我使用了 postgres 图像:https://registry.hub.docker.com/_/postgres/


问题是 postgres Dockerfile 将“/var/lib/postgresql/data”声明为卷。这只是一个普通目录,位于图像使用的联合文件系统之外。卷会一直存在,直到没有容器链接到它们并且它们被显式删除为止。

你有几个选择:

  • Use the --volumes-from与新容器共享数据的命令。仅当一次只有一个正在运行的 postgres 映像时,这才有效,但它是最好的解决方案。
  • 编写您自己的 Dockerfile,在声明卷之前创建数据。创建容器时,该数据将被复制到卷中。
  • 编写一个入口点或 cmd 脚本,在运行时填充数据库。

所有这些建议都要求您在容器运行后使用卷来管理数据。或者,您可以编写自己的 Dockerfile,但不声明卷。然后你可以使用docker commit添加数据后创建新图像。这可能会在短期内起作用,但绝对不是您应该如何使用容器 - 它是不可重复的,您最终将用完联合文件系统中的层。

查看 Docker 官方文档管理容器中的数据了解更多信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有初始数据的 docker postgres 不会在提交时保留 的相关文章

随机推荐

  • 使用服务主体访问 Azure Blob 存储

    我想通过使用活动目录服务主体的凭据从 python 访问私有 blob 存储 我知道这个相关问题如何在 python 中针对 Azure 存储 blob 对用户进行身份验证 这帮助我走到了这一步 但现在我陷入了困境 我可以进行身份 验证并获
  • 将结构传递给函数

    我是一名新 C 程序员 我想知道如何通过struct到一个函数 我收到错误并且无法找出正确的语法来执行此操作 这是它的代码 Struct struct student char firstname 30 char surname 30 st
  • Docker 撰写可执行文件在 $PATH 中找不到”:未知

    但我有问题 Dockerfile FROM python 3 ENV PYTHONUNBUFFERED 0 RUN mkdir code WORKDIR code COPY requirements txt code RUN pip ins
  • 使用 powershell 从 Outlook 获取今天的约会:不需要的结果

    我使用以下代码提取今天的约会 olFolderCalendar 9 ol New Object ComObject Outlook Application ns ol GetNamespace MAPI Start Get Date Add
  • switch 语句 - 字符串与 int

    我在事件处理程序中有这行 javascript var value event currentTarget value example 9 然后我在 switch 语句中使用它 switch value case 9 return 12 c
  • 计算设置的位数

    我想计算设置的二进制数中的位数 例如 用户输入数字 97 二进制表示为 01100001 该程序应该告诉我 3 位是使用 MIPS ISA 设置的 我能够用 C 实现这一点 但我不知道如何使用汇编代码实现它 您要查找的内容通常称为人口计数
  • WPF图像控件源码

    我试图在 WPF 中重新创建一个非常简单的 C 项目示例 它是一个简单的图像查看器 来自 sam 的自学 C 我设法打开了打开文件对话框 但是我如何将图像路径设置为WPF 中的 image source 控件 private void Se
  • 异步任务与异步无效

    这可能是一个非常愚蠢的问题 但我有以下几行代码将 RAW 图像转换为 BitmapImages public async void CreateImageThumbnails string imagePath int imgId await
  • 如何在 Windows 上使用另一个用户帐户创建新进程?

    是否可以使用不同的用户帐户在 Windows 上创建新进程 我知道有一个上下文菜单 运行方式 但我想从 Java 执行此操作 我有用户名和密码 您需要使用以下方法编写 DLLJava 本机接口 JNI 因为你无法使用纯 Java 代码来做到
  • 将 Nokogiri 文档转换为 Ruby Hash

    有没有一种简单的方法可以将 Nokogiri XML 文档转换为哈希值 类似于 Rails 的东西Hash from xml 如果要将 Nokogiri XML 文档转换为哈希 只需执行以下操作 require active support
  • 如何在jquery中启用和禁用文本框[重复]

    这个问题在这里已经有答案了 我写了一个html和脚本的示例代码如下 当我首先执行此代码时 我会收到警报 hello 但当我通过按选项卡按钮在 cca 进行更改时 会收到其他警报 然后它不会显示警报 如何使用该文本框并启用和禁用它的其他文本字
  • 如何将 DataTable 序列化为 json 或 xml

    我正在尝试将 DataTable 序列化为 Json 或 XML 可能吗 如何 任何教程和想法 请 例如有一个sql表 CREATE TABLE dbo dictTable keyValue int IDENTITY 1 1 NOT NUL
  • 如何在 Swift 中比较两个字典?

    有没有一种简单的方法可以比较两个 String AnyObject Swift 中的字典 因为它不接受 操作员 通过比较两个字典 我的意思是检查它们是否具有相同的精确键 并且对于每个键 它们是否具有相同的值 正如 Hot Licks 已经提
  • 计算垂直于 3D 中第三个向量的两个向量

    是什么最好 最快 如何计算垂直于第三个向量 X 并且彼此垂直的两个向量 这就是我现在计算这个向量的方式 HELPER unit vector that is NOT parallel to X x axis normalize X y ax
  • Python 多处理导致许多僵尸进程

    我一直在使用一组工作人员来实现 python 的多处理库 我实现了以下代码 import main1 t1 time time p Pool cores result p map main1 client list client if re
  • Python 列表作为变量名称[重复]

    这个问题在这里已经有答案了 我一直在使用 Python 并且我有这个需要制定的列表 基本上 我在多维数组中输入一个游戏列表 然后对于每个游戏 它将根据第一个条目创建 3 个变量 制作的数组 Applist Apple red circle
  • AutoHotkey 中的功能键叫什么?

    I have a key labelled Fn in blue letters at the bottom of my Windows 7 keyboard I want to trigger my AutoHotkey script w
  • 在 Java 中对阿拉伯语单词进行排序

    我有一个阿拉伯语单词列表 我想对其进行排序 我已经尝试了具有不同语言环境的标准 Collat or 例如英语或法语 但没有太大希望 我什至创建了自己的 RuleBasedCollat or 但无济于事 显然 默认排序依赖于 unicode
  • python 集合的哈希如何工作[重复]

    这个问题在这里已经有答案了 我完全熟悉哈希表和哈希的工作原理 但我试图完全理解O 1 完全来自 set1 s t print x in set1 print s in set1 set2 s print s in set2 我被告知要检查是
  • 具有初始数据的 docker postgres 不会在提交时保留

    我在 Docker 环境中创建了一个 Rails 应用程序 它链接到一个 postgres 实例 我编辑了 postgres 容器添加初始数据 通过从 Rails 应用程序运行 rake db setup 现在我提交了 postgres 数