docker - 使用 Docker 提供软件更新

标签 docker docker-compose devops software-distribution orchestration

我正在使用 docker-compose 在本地(离线网络)运行多容器软件。当无法直接连接到 Docker 注册表时,提供软件更新的最佳方式是什么?

我尝试了 2 个选项(都不够): 1. 交付使用 docker save 创建的完整 Docker 镜像。效率非常低 - 每个图像都在 1GB 以上,没有层优化。 2. 除了 Docker 镜像之外还提供定制软件,并将其映射到通用容器内的主机卷。通过这种方式,我可以仅提供自定义软件更新,并减少需要更新 Docker 镜像的时间。但这还远非最佳。

有没有办法只将更新后的 Docker 层与自定义软件作为文件交付?还有其他想法吗?

谢谢, 梅尔

最佳答案

您有多种选择:

  • 在专用网络中设置一个专用注册表并让服务器使用它
  • 利用 torrent 协议(protocol)速度更快,请参阅 Docket项目
  • 如果没有,请使用 --rsyncable 选项对您的保存进行 gzip 压缩,并使用 rsync 而不是 scp
  • 使用docker-slim减小最终图像尺寸

我希望上述几种方法的组合应该足够好。

关于docker - 使用 Docker 提供软件更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44552754/

相关文章:

node.js - 运行 gulp in `docker-compose build`

node.js - 在 Dockerized Node.js 开发环境中处理 node_modules 的干净且实用的方法?

testing - 如何在开发过程中检查 SaltStack 的 SLS 文件的语法正确性

java - 如何使用 Dockerfile 和 python 设置 JAVA_HOME?

django - 何时在 docker compose 中运行命令以及何时在 dockerfile 中运行命令?

c# - 在单个事务中将 2M 节点/关系插入 Neo4J 永远不会成功

php - Rancher sidekick php-fpm端口映射

Docker 容器与外部数据库通信

ant - 基于 Web 的复杂数据中心自动化工具

json - 创建堆栈中的 Cloudformation 错误 : "ELB cannot be attached to multiple subnets in the same AZ"