클라우드와 컨테이너의 기초
Linux 호스트에서 Docker를 사용하여, 호스트와는 다른 배포판을 바탕으로 한 이미지로 컨테이너를 시작하고, 그 안에서 uname -r(커널의 릴리스를 표시하는 명령)과 cat /etc/os-release(배포판 정보를 표시하는 명령)를 실행했다. 결과의 설명으로 올바른 것은?
- Auname -r도 /etc/os-release도 호스트의 커널과 배포판의 정보를 표시한다
- Buname -r도 /etc/os-release도 이미지의 바탕이 된 배포판과 그 커널의 정보를 표시한다
- Cuname -r은 호스트의 커널을, /etc/os-release는 이미지의 배포판을 표시한다
정답과 해설 보기
정답: C. uname -r은 호스트의 커널을, /etc/os-release는 이미지의 배포판을 표시한다
컨테이너는 호스트의 커널을 공유하므로, 커널에 문의하는 uname -r은 컨테이너 안에서도 호스트 커널의 릴리스를 표시합니다. 한편 /etc/os-release는 파일이므로 컨테이너에서 보이는 파일 시스템, 즉 이미지에 포함된 것이 읽히고, 이미지의 배포판 이름이 표시됩니다. 이미지에는 커널이 포함되지 않으며, 명령이나 라이브러리 등 사용자 공간의 파일만 들어 있습니다. 그래서 호스트의 커널에 없는 기능을 전제로 한 프로그램은 컨테이너 안에서도 동작하지 않습니다.