Docker 이미지의 glibc는 다른 컨테이너 호스트 커널에서 어떻게 유지되나요?

Docker 이미지의 glibc는 다른 컨테이너 호스트 커널에서 어떻게 유지되나요?

Docker 컨테이너는 호스트 시스템의 커널을 공유하지만 자체 애플리케이션과 라이브러리를 포함합니다. glibc는 그러한 라이브러리 중 하나입니다. 그렇죠?

그렇다면 실제 컨테이너 호스트가 실행 중인 커널 버전과 호환되지 않는 glibc 문제가 없는 이유는 무엇입니까?

답변1

애플리케이션을 고려할 때 Linux 커널은 상당히 바이너리 호환됩니다. 비호환성을 발견하면 다음과 같은 이유로 인해 발생할 가능성이 높습니다.

ㅏ. CPU 아키텍처 불일치(커널 버전과 관련이 없는 것으로 보임) 또는

b.라이브러리 문제. 응용 프로그램은 일반적으로 일부 라이브러리에 따라 달라집니다. 이들 중 하나라도 없거나 호환되지 않으면 응용 프로그램이 실행되지 않을 수 있습니다.

물론 커널의 일부 API/ABI는 버전 간에 변경될 수 있으므로 이론적으로 커널 비호환성이 발생할 수 있습니다. 그냥 자주 일어나는 일이 아닌데...

커널 모듈은 다른 이야기입니다. 제가 알 수 있는 한 버전 간 호환성 수준은 다소 낮습니다. 하지만 glibc 커널 모듈은 필요하지 않습니다.

관련 정보