更新 Docker 容器中的大文件

问题描述 投票:0回答:1

我目前有一组应用程序在单独的 Docker 容器中运行。容器本身在云上运行。有时,配置更新是必要的。配置更新要求我发送一个大小为 300 - 500 MB 的文件。 我想知道执行此操作的最佳做法是什么。

每个容器都公开了一个 Swagger 文档,因此我可以公开一个端点来潜在地加载文件。在这种情况下,我会通过请求正文发送文件的内容吗?

docker swagger
1个回答
3
投票

由于网络和安全问题,我认为公开端点并将整个文件上传到服务器不是一个好主意。

目前,我不知道这些更新文件是什么,但按照你的方法,容器将做双重工作。 (做自己的工作+下载更新)

要复制更新的文件,您可以使用像

scp
这样的安全协议从本地复制到 docker 容器。现在假设您有更新文件的备份,以防在复制更新时出现网络故障,则此方法有效。

这里有一个更好的策略。

  1. 理想情况下,所有更新文件都应托管在 docker 主机上,然后使用卷安装到 docker 容器

  2. 更好的方法是您应该将此更新文件上传到高度可扩展的云存储服务。

  3. 您的存储触发器将到达一个端点,该端点将开始将更新文件下载到您的 Docker 主机

  4. 成功下载后,您可以重新启动容器,该容器将从 docker 主机选择最新更新

总而言之,您将在 Docker 外部有一个端点,它可以为您下载更新并处理使用正确的更新版本启动/停止容器的逻辑。

更不用说,对以前的更新进行备份会很棒,这将在更新错误时有所帮助。您可以为此使用滚动更新文件编写器类型的机制。

这种方法在网络和安全方面都很棒。

希望这有帮助。谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.