我正在使用 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/