首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Docker buildx - build失败并显示'TLS握手超时‘,而docker pull工作正常

Docker buildx - build失败并显示'TLS握手超时‘,而docker pull工作正常
EN

Stack Overflow用户
提问于 2020-05-05 19:33:37
回答 2查看 3.3K关注 0票数 1

在x86_64平台上为ARMv7构建镜像时,我遇到了一些问题。我能够在以前的机器上构建精确的镜像(在12月份),现在我设置了一个新的镜像,并且在加载元数据时构建失败。我在前一个上试了一下,我得到了同样的问题。

我没有使用proxy,而是在Debian10上使用Docker version 19.03.8, build afacb8b7f0

代码语言:javascript
复制
debian@master-vm:~/zulu/source/docker-image-modbus-server$ sudo docker buildx build --progress=plain .
WARN[0000] No output specified for docker-container driver. Build result will only remain in the build cache. To push result image into registry use --push or to load image into docker use --load 
#2 [internal] load build definition from Dockerfile
#2 transferring dockerfile: 32B done
#2 DONE 0.1s

#1 [internal] load .dockerignore
#1 transferring context: 2B done
#1 DONE 0.2s

#3 [internal] load metadata for docker.io/arm32v7/python:3-alpine
#3 ERROR: failed to do request: Head https://registry-1.docker.io/v2/arm32v7/python/manifests/3-alpine: net/http: TLS handshake timeout

#7 [internal] load build context
#7 transferring context: 135B done
#7 DONE 0.1s

#4 [1/8] FROM docker.io/arm32v7/python:3-alpine
#4 resolve docker.io/arm32v7/python:3-alpine
#4 resolve docker.io/arm32v7/python:3-alpine 10.1s done
#4 ERROR: failed to do request: Head https://registry-1.docker.io/v2/arm32v7/python/manifests/3-alpine: net/http: TLS handshake timeout
------
 > [internal] load metadata for docker.io/arm32v7/python:3-alpine:
------
------
 > [1/8] FROM docker.io/arm32v7/python:3-alpine:
------
failed to solve: rpc error: code = Unknown desc = failed to load cache key: failed to do request: Head https://registry-1.docker.io/v2/arm32v7/python/manifests/3-alpine: net/http: TLS handshake timeout

但是,我可以通过docker pull arm32v7/python:3-alpine拉取图像。

我通过docker buildx imagetools inspect注意到,没有特定的平台。会不会是问题所在?

代码语言:javascript
复制
debian@master-vm:~/zulu/source/docker-image-modbus-server$ sudo docker buildx imagetools inspect docker.io/arm32v7/python:3-alpine

{
   "schemaVersion": 2,
   "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
   "config": {
      "mediaType": "application/vnd.docker.container.image.v1+json",
      "size": 7105,
      "digest": "sha256:2d2bef1887db61335227492d453a017bc91c087a29351d4ac17e592b316403f4"
   },
   "layers": [
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 2422063,
         "digest": "sha256:3cfb62949d9d8613854db4d5fe502a9219c2b55a153043500078a64e880ae234"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 300597,
         "digest": "sha256:d9cc56725e953ef92747f06871023f5d55c6bf429621ac1619ed1314f8fbbffb"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 26451152,
         "digest": "sha256:bed2ca1fb270fe52f59092abec52bfa9e7419f99a56d0bc8f61efd95d6cb3aa0"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 231,
         "digest": "sha256:70012a3ca4616e4d9a1ffa32f13aac782ee8e150670628fb507942c6106b2808"
      },
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 1931243,
         "digest": "sha256:b7069b1f7adf8dbcef637a87139fa99688b200393fe39488174a3ea48b023179"
      }
   ]
}

我将很高兴在这个问题上得到任何帮助。为了让事情变得更简单,这里有docker info

代码语言:javascript
复制
debian@master-vm:~/zulu/source/docker-image-modbus-server$ sudo docker info
Client:
 Debug Mode: false
 Plugins:
  app: Docker Application (Docker Inc., v0.8.0)
  buildx: Build with BuildKit (Docker Inc., v0.3.1-tp-docker)

Server:
 Containers: 3
  Running: 2
  Paused: 0
  Stopped: 1
 Images: 4
 Server Version: 19.03.8
 Storage Driver: overlay2
  Backing Filesystem: <unknown>
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd
 init version: fec3683
 Security Options:
  apparmor
  seccomp
   Profile: default
 Kernel Version: 4.19.0-5-cloud-amd64
 Operating System: Debian GNU/Linux 10 (buster)
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 3.857GiB
 Name: master-vm
 ID: I5UI:7D77:2WEM:2KDZ:BPTC:EHWD:VROK:LA63:ZAZQ:QC7T:LY2Z:WMLW
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

WARNING: No swap limit support

我的Dockerfile:

代码语言:javascript
复制
FROM arm32v7/python:3-alpine

WORKDIR = /usr/src/app
RUN apk add --no-cache --virtual .build-deps gcc musl-dev
COPY requirements.txt ./

RUN pip3 install --no-cache-dir -r requirements.txt
RUN apk del .build-deps gcc musl-dev

#Choose S103 or M103 devices
COPY ./S103/device.json .
COPY ./server-callback.py .

CMD ["python3", "./server-callback.py"]

我把它作为一个问题发布在Docker buildx GitHub上,但也在这里询问我是否在配置中遗漏了什么。https://github.com/docker/buildx/issues/275

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-06 02:26:53

好的,经过几个小时的调试,我找到了将/etc/docker/daemon.json配置中的MTU降低到1300的解决方案(或变通方法)。

代码语言:javascript
复制
{
    "mtu":1300
}

经过几次测试后,它似乎工作得很好。我猜网络基础设施中的MTU大小有一些不一致--我使用的是Openstack。希望这能节省一些人的时间。

票数 5
EN

Stack Overflow用户

发布于 2020-11-27 15:27:11

对我起作用的是,我只是简单地重新启动了我的docker。在那之后,它就起作用了,不需要做任何其他的事情。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61612158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档