Kernel
하드웨어에 바로 붙어서 하드웨어 자원 관리하며 돌아가는 가장 낮은 계층의 코드.
실제 자원 접근 (메모리, 드라이버 소통 등)은 커널만이 할 수 있고, 애플리케이션 코드는 커널에게 작업을 요청해야 한다.
상위의 application 바이너리 코드들은 바로 cpu에서 돌아가는 것이 아니라, 커널에 의해 실제 메모리 주소 등이 부여되어 진짜 동작하는 코드들로 변환되고, 이 코드들이 어떻게 돌아가는지, 스케줄링까지 커널이 수행한다.
docker
데몬: 컨테이너 오케스트레이션. cli로부터 명령 받아 컨테이너를 돌린다. 생명 주기 관리. cli로부터 docker run 등의 명령어를 받아 처리.
이미지: 런타임, 라이브러리, 코드 등의 돌리는데 필요한 명세들이 들어간 일종의 명세, 빌드 결과물
컨테이너: 이미지로 돌리는 하나의 인스턴스 프로세스
docker compose: yaml 파일에 적힌 명세를 읽고, 거기에 따라 여러 컨테이너들을 한번에 띄우는 명령어