我有一个安装部署与码头工人认为工作原理如下:泊坞窗推送需要很长的时间
- 建立我的开发机器上的图像通过Dockerfile
- 按下图像注册表(我试过既泊坞窗枢纽和Quay.io)
- 这一形象拉到部署服务器,并重新启动容器。
我希望尽快完成这些步骤,但需要花费很长时间。即使对于尺寸适中的图像(750MiB,包括标准ubuntu
和朋友),稍作修改后,需要部署17分钟。我优化了我的Dockerfile
中的项目顺序,因此大多数时候它实际上都会缓存图像。这似乎没有什么区别。
主要的罪魁祸首是docker push
一步。对于Docker Hub和Quay.io来说,推送图像需要很长的时间。在我做的一个简单的基准测试中,我执行了两次,一次执行docker push
,因此所有以前的图像都已经在注册表中。所以,我只看到这几行:
...
bf84c1d841244f: Image already pushed, skipping
...
但是,如果我的时间推,性能是可怕的。推到Quay.io需要3.5分钟当所有的图像都已经在服务器上!推到码头工人枢纽约需12分钟!
因为很多人在生产中使用Docker,所以在某些地方显然有些问题,这些时间与持续交付完全相反。
如何让这个运行更快?其他人也看到这种表现吗?它是否与注册表服务有关,或者与我的本地机器有关?
我使用在Mac OS X
恐怕这个答案会导致几个混淆。关于“控制我自己的数据”和“依靠外部服务”的观点是无关紧要的。所有代码完全在云上运行,而我的源代码仍然在Github上。其次,我不明白云提供商如何拥有快速的本地**注册管理机构?据我所知,这些只是致力于单个公司/账户的注册管理机构。所以你建议这个性能问题的根源在于Quay和Docker没有以足够的容量运行他们的服务? – user1496984