使用 docker 推送部署很慢,因为有很多图像

Deploying with docker push is slow because there are many images

我正在尝试通过 docker 进行部署。我正在使用以下工作流程:

  1. 本地构建
  2. 将我的图像推送到 docker 集线器
  3. 在服务器端:拉取镜像
  4. 在服务器上:启动图像

但是 docker 推送需要永远。大约有 30 张图像,它必须遍历每一张并说 "Image already exists"。有什么办法可以加快速度吗?

或者,我应该使用不同的流程进行部署吗?

您在每次部署时都推送 more/large 层图像的最可能原因是您没有优化 Dockerfile。这是一个很好的介绍 http://blog.tutum.co/2014/10/22/how-to-optimize-your-dockerfile/.

如果您使用的是本地注册表,我们最近添加了一个 Redis 缓存,它极大地加快了速度。有关如何执行此操作的详细信息,请参阅注册表 github 页面

https://github.com/docker/docker-registry

虽然推送新图像仍然需要时间,但拉取速度非常快,因为所有层都在 redis 缓存中。

如果您像我一样推动 AWS ECR,可能是您本地的 docker 需要重启。查看有关 AWS ECR 缓慢的主题:

https://forums.aws.amazon.com/thread.jspa?threadID=222834

这也可能会影响其他平台。似乎 Mac 上的 1.12.1 左右,无论如何,有一些缓慢的问题随着 Docker.

的重新启动而消失