简体中文

开发者工具 · Docker run 到 Docker compose 转换器

docker run 与 Compose 中的卷:绑定挂载、命名卷和 :ro

· 工作原理

码头工人 撰写 卷

抽象图展示了 docker run 与 compose 中的卷:绑定挂载、命名卷和 :ro
原始 ToolAcre 矢量图

-v 标志可以表示三种不同的含义,具体取决于冒号的其余部分。这篇文章解释了绑定挂载、命名卷和匿名卷,以及每个卷如何变成 YAML。

数据库返回为空 - 容器已重新创建,并且 -v 标志从未引用磁盘上幸存的位置

数据库返回为空 - 容器已重新创建,并且 -v 标志从未引用磁盘上幸存的位置。证据:仅目标 -v 值是匿名的,并且会收到持久性警告。使用一次性文字再现体积持久性。将每个源事件与服务量和命名声明配对;保留源分类和路径以供目的地审核。

卷事件还揭示了一个单独的卷事件边界是 --mount 被正确使用但报告为不受支持。证据:--mount 被正确使用,但报告为不受支持。此卷持久性约束是一个停止点。在没有制造行为的情况下检查服务卷和命名声明,然后记录源分类和路径的主机检查。

-v 的三种含义 — 绝对路径(绑定挂载)、名称(命名卷)或冒号前没有任何内容(匿名卷)

-v 的三种含义 — 绝对路径(绑定挂载)、名称(命名卷)或冒号前没有任何内容(匿名卷)。证据:简单名称、主机路径、相对路径、变量和 Windows 驱动器的分类不同。将卷持久性令牌跟踪到服务卷和命名声明中。将有序值与最后值字段分开;源分类和路径不在集合中。

一个相关的卷机制边界是一个单独的卷语法边界是 pgdata 和只读 init 绑定都保留文本卷字符串。证据:pgdata 和只读 init 绑定仍然是文字卷字符串。使用此卷持久性事实来预测服务卷和命名声明中的一个成员或标量。在决定有关源分类和路径的任何内容之前检查警告。

命名卷需要一个声明 - 顶级卷:Compose 需要的键,以及缺少它时会发生什么

命名卷需要一个声明 - 顶级卷:Compose 需要的键,以及缺少它时会发生什么。证据:命名来源在顶级卷中获得空声明。从其模型判断卷持久化序列化。服务卷和命名声明中的引用可以保护类型,但不会提供源分类和路径的操作证明。

第二卷序列化观察是单独的卷输出边界是保留相关字符串而不解析未来的 Compose 目录。证据:保留相对字符串而不解析未来的 Compose 目录。此卷持久性输出将设置与不可用的上下文分开。保持服务卷和命名声明可审查,并独立检查源分类和路径。

转换器保留 -v 短语法并警告 --mount 必须手动翻译

第二个冒号后的选项 — ro、z 和 Z,以及 --mount 的 key=value 形式表示相同的内容。证据:--mount 被正确使用但报告为不受支持;转换器保留 -v 短语法并警告 --mount 必须手动翻译。在卷持久性异常处停止而不是猜测。服务卷和命名声明附近的任何添加都需要与源分类和路径相关的特定于部署的原因。

另一个卷异常约束是,对于此卷部分,在此候选文件旁边保留此卷部分的原始命令和此卷部分的警告。证据:存储库没有提供更广泛的运行时间或历史证据。将原始卷持久性命令保留在警告旁边。该比较显示了哪些服务卷和命名声明包含哪些内容以及哪些源分类和路径决策仍然是手动的。

工作示例:-v pgdata:/var/lib/postgresql/data 和 -v /srv/pg/init:/docker-entrypoint-initdb.d:ro — 均作为 Compose YAML 挂载

工作示例:-v pgdata:/var/lib/postgresql/data 和 -v /srv/pg/init:/docker-entrypoint-initdb.d:ro — 均作为 Compose YAML 挂载。从合成名称构建卷持久性示例。使每个服务卷和命名声明项都可追溯,而无需暴露生产源分类和路径详细信息。

相同的卷示例示例演示了单独的卷示例边界是卷列表使持久性假设可审查。证据:卷列表使持久性假设可以审查。配对的卷持久性事实应该在服务卷和命名声明中可见。记录该行并避免有关源分类和路径的假设。

相对路径含义取决于最终的 Compose 文件位置;转换器无法解决它

相对路径 — 在 Compose 中允许相对于文件,但在 docker run 中不允许,这就是为什么 ./ 仅在转换后出现。证据:保留相对字符串而不解析未来的 Compose 目录;相对路径含义取决于最终的 Compose 文件位置;转换器无法解决它。将卷持久性结果转换为一个可观察的服务卷和命名声明差异。 Docker 拥有后来的源分类和路径判定。

卷结果实现还显示,对于该卷部分,保留该卷部分命令的原始内容,并在该卷部分的旁边显示警告,该候选文件表示卷结果事实定义了该卷部分的内容,浏览器为此卷部分贡献了什么,docker 仍然拥有卷结果运行时判决,对于该卷部分,操作员仍然拥有卷结果安全策略,对于该卷部分存储库仍然需要删除卷结果秘密,对于该卷部分,保留这些责任,当对于描述生成的服务的该卷部分时,这些责任是分开的。拆分卷持久性职责:转换写入服务卷和命名声明,存储库删除机密,操作员验证源分类和路径。

这不包括什么 — 卷驱动程序、NFS 支持的卷和 tmpfs 挂载,它们有自己的密钥

这不包括卷驱动程序、NFS 支持的卷和 tmpfs 挂载,它们有自己的密钥。证据:--tmpfs 单独映射,而卷驱动程序需要手动配置。将卷持久性范围限制为此处显示的服务卷和命名声明分支。相邻表单和默认值无法回答源分类和路径问题。

另一个卷范围限制遵循单独的卷限制边界,即简单名称、主机路径、相对路径、变量和 Windows 驱动器的分类不同。将此卷持久性边界视为排除项。更喜欢准确的服务量和命名声明,而不是对源分类和路径的猜测。

要点:知道您拥有这三个中的哪一个 - 并且转换器会列出卷列表,以便您可以检查每一个

要点:知道您拥有这三本书中的哪一本,转换器会列出卷列表,以便您可以检查每一本。审核卷持久性作为源选项、模型字段、服务卷以及命名声明行和警告。在检查源分类和路径之前删除机密。

最后,卷外卖源确认一个单独的卷决策边界是命名源在顶级卷中获得空声明。严格关闭卷持久性:服务卷和命名声明是候选者;不保证源分类和路径以及 shell 等效性。