Docker buildx-在docker pull正常的情况下,构建失败并显示“ TLS握手超时”

问题描述 投票:0回答:1

我遇到了在x86_64平台上构建ARMv7映像的问题。我能够在12月的以前的机器上构建精确的映像,现在我设置了新的映像,并且在加载元数据时构建失败。我在上一个版本上进行了尝试,但遇到了同样的问题。

我没有使用代理,而是在Debian 10上使用Docker version 19.03.8, build afacb8b7f0

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注意到,没有特定的平台。可能是问题吗?

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

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:

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

docker handshake
1个回答
0
投票

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

{
    "mtu":1300
}

经过几次测试后,看来还可以。我想网络基础架构中的MTU大小存在一些不一致-我使用的是Openstack。希望这可以节省一些时间。

© www.soinside.com 2019 - 2024. All rights reserved.