[Docker] 1. 도커 작동 원리

김주희's avatar
Jul 29, 2025
[Docker] 1. 도커 작동 원리

1. OS와 커널

OS

 운영체제는 하드웨어 자원을 관리하고, 응용 프로그램와 하드웨어 사이를 중재하는 인터페이스를 의미
 

Kernel

커널은 운영체제 중 항상 메모리에 올라가 있는 운영체제의 핵심 부분
면접용 대답 정리해서 준비
커널은 운영체제 중 항상 메모리에 올라가 있는, 운영체제의 핵심 부분이다. 여기서 운영체제란 하드웨어 자원을 관리하고, 하드웨어와 애플리케이션 사이를 중재하는 인터페이스로 여기서 커널이 하드웨어와 애플리케이션 사이를 중재하는 핵심 기능을 담당한다. 그 중 예시로 프로세스 관리(프로세스 스케줄링 등), 스레드 관리, 시스템 호출 처리, 메모리 관리 등의 역할을 한다.
 
기본적으로 프로그램이 실행되기 위해서는 주기억장치에 적재된 상태여야 합니다.
운영체제 역시 프로그램이기 때문에 메인 메모리에 적재가 되어야 하나, 운영체제의 크기가 너무 커서 전체를 다 메인 메모리에 올리게 된다면 비효율적입니다. (메모리 공간의 낭비)
따라서 커널(kernel)이라고 하는 항상 필요한 운영체제의 핵심 부분만을 메인 메모리에 적재하여 운영체제를 사용하게끔 합니다.
즉, 커널은 메모리에 상주하는 운영체제의 핵심 부분이라고 할 수 있습니다.
운영체제에서 **커널(kernel)**이 "핵심 부분"이라고 불리는 이유는, 커널이 하드웨어와 소프트웨어 사이를 중재하며 운영체제의 가장 핵심적인 기능들을 담당하기 때문입니다.
조금 더 구체적으로 말씀드리면, 커널은 다음과 같은 핵심 역할을 합니다:
  1. 프로세스 관리
      • 프로그램이 실행될 때 생성되는 프로세스들을 관리하고, CPU를 어떤 프로세스가 얼마나 사용할지 스케줄링합니다.
  1. 메모리 관리
      • 각 프로세스가 사용할 메모리를 적절히 분배하고, 다른 프로세스가 서로의 메모리를 침범하지 않도록 보호합니다.
  1. 파일 시스템 관리
      • 디스크에 저장된 파일을 읽고 쓰는 기능을 제공합니다. 사용자나 프로그램이 파일을 요청하면 커널이 하드웨어에 명령을 내려서 처리합니다.
  1. 입출력 장치 관리 (I/O)
      • 키보드, 마우스, 프린터, 디스크 같은 장치들과의 데이터 송수신을 제어합니다. 커널이 중간에서 장치 드라이버를 통해 통신합니다.
  1. 시스템 호출 처리
      • 사용자가 어떤 작업(예: 파일 열기, 메모리 할당 등)을 요청하면, 그 요청은 시스템 콜을 통해 커널에 전달되고, 커널이 실제 작업을 수행합니다.
결국 커널이 없다면 프로그램은 하드웨어를 직접 제어할 수 없고, 운영체제로서의 기본 기능도 수행되지 않습니다. 그래서 커널을 운영체제의 뼈대이자 심장이라고 부르며, 항상 메모리에 올라가 실행되고 있는 이유도 이 때문입니다.
 
notion image
 
notion image
 

프로그램, 프로세스, 포트

  • 프로그램 : 컴퓨터 시스템에
  • 프로세스 : 실행 중인 (메모리에 올라간) 프로그램
  • 포트 : 프로세스이지만 통신을 하지 않으면 포트가 존재하지 않고, 통신을 하는 프로세스만이 자기만의 포트번호를 가진다. 즉, 포트번호는 통신의 pk, 식별자이다.
 
 

2. VM vs Docker

VM (Virtual Machine

  • VM은 자체 OS를 포함하기 때문에 host OS에 종속되지 않는다.
  • 그러나 VM은 커널을 포함하게 되기 때문에 기존의 host OS의 커널까지 포함하여 여러개의 OS가 한 컴퓨터에 존재하게 되고 여러개의 OS가 프로세스 스케줄링을 하게 되면서 엄청 무거워 진다.
notion image
 
 

3. Docker 동작 원리 (도커 이미지에서 컨테이너까지의 실행 흐름)

 
포트포워딩 됨
도커에서 톰캣을 실행했을때 tomcat은 8080으로 떴지만 host os에 뜬게 아니므로
docker run -dit -p 8081:8080 톰캣컨테이너ID4자리(또는 이미지 이름) 이런식으로 하면 윈도우에서 localhost:8081을 하면 도커 컨테이너 내부의 8080이 호출되는 방식
 
 
notion image
 
 
 
 
notion image
 
Share article

jay0628