Linux,Unix,BSD

[docker] fetch fail when docker container build

채윤아빠 2020. 11. 10. 20:04
728x90
반응형

문제점 및 증상

Apline 기반으로 새로운 docker container를 작성하여 build를 했는데, 특정 서버에서만 fetch 가 정상적으로 진해오디지 않고 계속 멈추어 있는 현상이 발생하였습니다.

# docker build .

...
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz

위 코드 부분에서 계속 멈추어 있거나, 다음과 같은 오류가 발생합니다.

fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
WARNING: Ignoring http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz: temporary error (try again later)

해결방안

다음과 같이 build 시 사용할 network를 변경하여, 빌드가 정상적으로 수행되는 것을 확인하였습니다.

# docker build . --network host

근본적인 문제는 기본 네트워크의 MTU값이 docker0의 MTU 값보다 작은 경우에 발생하는 문제로 확인되었습니다. 실제로 fetch에서 멈추어 있는 장비들의 MTU 값들은 다른 문제 때문에 1450으로 낮추어 놓은 상태였고, docker0의 경우 1500으로 설정되어 있어서 위와 같은 문제가 발생한 것으로 보입니다.


참고자료