컨테이너 환경에 대한 간단 메모

컨테이너 환경에 대한 간단 메모

컨테이너와 VM의 차이 외 기타 배운 점 기록

컨테이너 구동 원리

호스트 os의 커널을 공유하면서 프로세스처럼 격리하는 방식

그렇다면 커널 호환이 안된다면?

당연히 실행되지 않는 것이 정상, 그러나 mac, window 등에서 가동이 가능한 이유는 아예 vm layer가 추가되기 때문

윈도우에 docker desktop 설치 시 wsl2 설치하라고 하는 이유. MS의 리눅스 VM을 설치해야 해당 레이어 기반 컨테이너 작동이 수월하기 때문으로 보임.

커널 버전에서 문제가 발생하더라도 크래시가 발생할 수 있음 (버전 차이로 인해 존재하지 않는 기능을 사용 시도하는 등)

결론

커널 타입 일치해야 하고, 기능 지원에서 문제가 없어야 하며, cpu 아키텍쳐가 일치해야 컨테이너 가동 가능

VM

Hypervisor를 사용한 독립 실행, 커널을 따로 사용함. bare-metal / hosted 방식이 있고, 우리가 쓰는 건 대체로 호스트형, OS 위에 하이퍼바이저가 올라가기 때문에 성능 손실이 있음

볼륨 바인딩

데이터 영속성을 지키기 위해 사용, 호스트 머신의 특정 디렉토리를 마운팅하는 방식으로 처리됨. 리눅스 네이티브에서는 vfs에 직접 기록하는 방식이며 다른 os들의 경우는 내부 가상 네트워크를 태우는 방식으로 상대적으로 느릴 수 있음.

윈도우에서 chmod 무시하는 이유

윈도우에서는 ACL (Access Control List) 를 활용한 권한 관리 진행, chmod 방식을 이해하지 못함.

댓글 작성

게시글에 대한 의견을 남겨 주세요.

댓글 0