Artifactory 和 Docker for Windows - 推送缓慢然后大部分时间失败
Artifactory and Docker for Windows - Pushes Slow Then Fail Most of Time
在过去的 6 个月里,我们使用 Docker 和 Windows 来构建 Linux 和 Windows 容器镜像。
我们刚刚开始更频繁地构建图像,现在我们发现 docker push
命令经常失败。很多小层都上传成功了,虽然很慢,要重试几次。但最终,更大的层会一遍又一遍地重试,但永远不会成功。我已经让他们在 2 GB 的图像上进行了一个多小时,但它仍然没有完成,所以我取消了。这都是本地 LAN,速度超快,没有 WAN。因此,目前,我们必须在每个使用它们的地方从 Docker 文件构建 Linux 图像。
以前是 Windows 个图像中的 pushes
个失败的情况。现在好像推送Linux张图片都推送失败,Windows张图片push
就好了。我试过 4 个单独的 Docker 主机,都无法以相同的方式上传。
当我在 Linux 主机上构建完全相同的 Linux 图像并推送到 Artifactory 时,它可以正常工作。
很长一段时间以来,我都认为这是 NGinx 的问题。但是,由于 Linux 主机上传工作正常,我现在认为很难区分以下两者之间的细微差别:
Docker 对于 Windows
Nginx
人工
我发现了一些关于一般意义上的主题的其他帖子,大多数似乎 old/resolved/different,或者与 Windows 容器的基本支持相关。
欢迎反馈,谢谢。
环境:
Windows 10 10.0.17134
Docker CE: Version 18.06.1-ce-win73 (19507) (Stable)
Artifactory Version 6.3.2
重现:
docker pull centos/python-36-centos7
docker tag centos/python-36-centos7 my_artifactory_server/docker/centos/python-36-centos7
docker push my_artifactory_server/docker/centos/python-36-centos7
3 分钟后,这是我的进度:
5bef68a04db7: Retrying in 1 second
0ef705c3d148: Pushing [==================================================>] 262.7kB/262.7kB
ef9db94a65b7: Pushing [==================================================>] 262.7kB/262.7kB
832dfe5d9c79: Pushing [====> ] 19.34MB/226.8MB
4a45879b2884: Pushing [====> ] 33.58MB/377MB
20a61b68701f: Pushing [==================================================>] 3.408MB/3.408MB
0bb055614aec: Pushing [==================================================>] 262.7kB/262.7kB
84293cc95fdf: Pushing [==================================================>] 38.27MB/38.27MB
f972d139738d: Pushing [==========> ] 62.24MB/297MB
这显然都是由于 LCOW 的各种细微差别与 Linux 宿主在各种能力下的行为不同。由于 Windows 上的 Docker 正在完全重新设计以与 WSL2 一起使用,并且 LCOW 本身将被弃用,我的意思是解决方案是在 WSL2 可用时转移到 WSL2,并且永远不要期望这项工作。建议锁帖。
在过去的 6 个月里,我们使用 Docker 和 Windows 来构建 Linux 和 Windows 容器镜像。
我们刚刚开始更频繁地构建图像,现在我们发现 docker push
命令经常失败。很多小层都上传成功了,虽然很慢,要重试几次。但最终,更大的层会一遍又一遍地重试,但永远不会成功。我已经让他们在 2 GB 的图像上进行了一个多小时,但它仍然没有完成,所以我取消了。这都是本地 LAN,速度超快,没有 WAN。因此,目前,我们必须在每个使用它们的地方从 Docker 文件构建 Linux 图像。
以前是 Windows 个图像中的 pushes
个失败的情况。现在好像推送Linux张图片都推送失败,Windows张图片push
就好了。我试过 4 个单独的 Docker 主机,都无法以相同的方式上传。
当我在 Linux 主机上构建完全相同的 Linux 图像并推送到 Artifactory 时,它可以正常工作。
很长一段时间以来,我都认为这是 NGinx 的问题。但是,由于 Linux 主机上传工作正常,我现在认为很难区分以下两者之间的细微差别:
Docker 对于 Windows
Nginx
人工
我发现了一些关于一般意义上的主题的其他帖子,大多数似乎 old/resolved/different,或者与 Windows 容器的基本支持相关。
欢迎反馈,谢谢。
环境:
Windows 10 10.0.17134
Docker CE: Version 18.06.1-ce-win73 (19507) (Stable)
Artifactory Version 6.3.2
重现:
docker pull centos/python-36-centos7
docker tag centos/python-36-centos7 my_artifactory_server/docker/centos/python-36-centos7
docker push my_artifactory_server/docker/centos/python-36-centos7
3 分钟后,这是我的进度:
5bef68a04db7: Retrying in 1 second
0ef705c3d148: Pushing [==================================================>] 262.7kB/262.7kB
ef9db94a65b7: Pushing [==================================================>] 262.7kB/262.7kB
832dfe5d9c79: Pushing [====> ] 19.34MB/226.8MB
4a45879b2884: Pushing [====> ] 33.58MB/377MB
20a61b68701f: Pushing [==================================================>] 3.408MB/3.408MB
0bb055614aec: Pushing [==================================================>] 262.7kB/262.7kB
84293cc95fdf: Pushing [==================================================>] 38.27MB/38.27MB
f972d139738d: Pushing [==========> ] 62.24MB/297MB
这显然都是由于 LCOW 的各种细微差别与 Linux 宿主在各种能力下的行为不同。由于 Windows 上的 Docker 正在完全重新设计以与 WSL2 一起使用,并且 LCOW 本身将被弃用,我的意思是解决方案是在 WSL2 可用时转移到 WSL2,并且永远不要期望这项工作。建议锁帖。