어느 순간부터 PC 에서 도커 이미지 생성 작업하는데, timeout 오류가 발생한다.
docker.io 에서 이미지를 가지고 오는 부분에서 문제가 있는듯 한데, 마지막에 "TLS hadshake timeout" 메시지가 관련이 있는듯하다.
| docker build -t test-app:local . [+] Building 56.3s (3/3) FINISHED docker:desktop-linux => [internal] load build definition from Dockerfile 0.3s => => transferring dockerfile: 2.72k 0.0s => CANCELED [internal] load metadata for docker.io/library/alpine:3.1 54.9s => ERROR [internal] load metadata for docker.io/adoptopenjdk/maven-openjdk11:lates 54.8s ------ > [internal] load metadata for docker.io/adoptopenjdk/maven-openjdk11:latest: ------ Dockerfile:2 -------------------- 1 | ## build stage 2 | >>> FROM adoptopenjdk/maven-openjdk11:latest AS builder 3 | WORKDIR /build 4 | COPY pom.xml . -------------------- ERROR: failed to solve: adoptopenjdk/maven-openjdk11:latest: failed to resolve source metadata for docker.io/adoptopenjdk/maven-openjdk11:latest: failed to copy: httpReadSeeker: failed open: failed to do request: Get "https://docker-images-prod.6aa30f8b08e16409b46e0173d6de2f56.r2.cloudflarestorage.com/registry-v2/docker/registry/v2/blobs/sha256/6a/6ac0cb3aa787db7ac312c246bd349ca5e060cb682b8a582e6f771e7ac6407c20/data?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=f1baa2dd9b876aeb89efebbfc9e5d5f4%2F20250218%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250218T063902Z&X-Amz-Expires=1200&X-Amz-SignedHeaders=host&X-Amz-Signature=0a44593d5a372fadca931531cb0770d987c755cb77ab8149af30fd83a8dbde90": net/http: TLS handshake timeout |
설마 프로그램에서 사용중인 특정 주소만 그런가해서 많이 사용하는 nginx 로 테스트해 보았으나, 동일한 에러가 나온다.( docker pull nginx)
실행중인 도커 데스크탑을 최근에 업데이트를 안했는데, 그 영향인가 싶어서 업데이트(v4.38.0)를 하고 다시 시도해보았으나 동일 에러가 나온다.
그래서 "docker pull image tls hadshake timeout" 로 구글 검색에서 찾아보면, 인터넷이 느릴 경우에 "handshake timeout" 이 나온다고 한다. 흠, 이게 원인이라고 보기에는 서버 빌드 머신에서 동일한 pull 명령어로는 아무 문제가 없고 PC 에서 테스트할때만 갑자기 나오고 있어서 참 애매하다.
그런데, https://serverfault.com/questions/908141/docker-pull-tls-handshake-timeout 에서 mtu 관련 파라미터를 바꾸고 나서 해결했다고 나와서 설마하고 따라 해보니깐 docker pull 이 정상 동작한다. PC 에서 docker 이미지 서버로 가는 네트워크 환경이 무언가 바뀐게 있는 듯 한데, 일단 급한대로 mtu 사이즈 변경해서 적용해보자.
1. windows + "R" > "wsl" 실행 후
2. WSL 에서 기본 인터페이스인 eth0 의 mtu 사이즈를 1500 에서 1200 으로 강제 조정 (호스트 PC 의 인터페이스가 조정이 되는거는 아니고 가상 어댑터가 변경해도 상관없을듯하다.)
3. docker pull nginx

참고 :
https://github.com/microsoft/WSL/issues/4698#issuecomment-642026585
'Engineering > Docker' 카테고리의 다른 글
| 로컬 PC 에서 쿠버네티스 Pod 로 파일 복사 (0) | 2025.10.02 |
|---|---|
| docker 빌드시 패키지 오류 해결 (0) | 2024.08.30 |
| docker build 중 "ERROR: failed to solve: error from sender: context canceled" 오류 해결 (0) | 2024.03.26 |
| docker 명령어 간단 정리 (0) | 2023.11.16 |
| 도커 데스크탑 데이터 삭제 (0) | 2023.08.18 |