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으로 설정되어 있어서 위와 같은 문제가 발생한 것으로 보입니다.
참고자료
- "apk fetch hangs #307":https://github.com/gliderlabs/docker-alpine/issues/307
- "Path MTU Discovery":https://en.wikipedia.org/wiki/Path_MTU_Discovery
- "TCP MSS clamping – what is it and why do we need it?":https://blog.ipspace.net/2013/01/tcp-mss-clamping-what-is-it-and-why-do.html
'Linux,Unix,BSD' 카테고리의 다른 글
kinsing malware 치료기 (0) | 2020.12.21 |
---|---|
[docker] 업데이트 이후, "OCI runtime create failed" 오류 발생 (0) | 2020.11.11 |
docker root 폴더 변경하기 (0) | 2020.09.23 |
SSH로 서버 접속시, 멈추고 접속이 성공되지 못하는 문제 (0) | 2020.09.03 |
[bind] bad owner name (check-names) 오류 해결 방법 (0) | 2020.08.25 |