【发布时间】:2015-07-03 08:55:34
【问题描述】:
我正在尝试通过 docker 进行部署。我正在使用以下工作流程:
- 在本地构建
- 将我的图像推送到 docker hub
- 在服务器上:拉取图片
- 在服务器上:启动映像
但是 docker push 需要永远。大约有 30 张图像,它必须遍历每一张并说“图像已经存在”。有什么办法可以加快速度吗?
或者,我是否应该使用不同的流程进行部署?
【问题讨论】:
标签: deployment docker
我正在尝试通过 docker 进行部署。我正在使用以下工作流程:
但是 docker push 需要永远。大约有 30 张图像,它必须遍历每一张并说“图像已经存在”。有什么办法可以加快速度吗?
或者,我是否应该使用不同的流程进行部署?
【问题讨论】:
标签: deployment docker
如果您像我一样推动 AWS ECR,可能是您本地的 docker 需要重新启动。请参阅有关 AWS ECR 缓慢的主题:
https://forums.aws.amazon.com/thread.jspa?threadID=222834
这也可能会影响其他平台。 Mac 上似乎在 1.12.1 左右,无论如何,重启 Docker 会解决一些缓慢的问题。
【讨论】:
如果您使用的是本地注册表,我们最近添加了一个 redis 缓存,它极大地加快了速度。有关如何执行此操作的详细信息,请参见注册表 github 页面
https://github.com/docker/docker-registry
虽然推送新图像仍然需要时间,但拉取速度非常快,因为所有层都在 redis 缓存中。
【讨论】:
docker exec -it registry cat /etc/docker/registry/config.yml存储:缓存:blobdescriptor:内存
您在每次部署时都推送更多/大型镜像层的最可能原因是您没有优化 Dockerfile。这是一个很好的介绍http://blog.tutum.co/2014/10/22/how-to-optimize-your-dockerfile/。
【讨论】: