Dokcer

Docker 란?

땍땍 2025. 10. 9. 15:46

Docker 란?

컨테이너를 활용해 동일한 운영체제 위에서도 각 컨테이너 별 독립적인 환경을 제공하며, 어떤 환경에서나 동일한 서비스를 실행하고 배포할 수 있도록 도와주는 플랫폼

어떻게?

도커 이미지 내에 서비스 구동에 필요한 소스 코드, 라이브러리, 환경 설정, 디펜던시 등을 모두 저장하고 이를 활용하기에 어떠한 환경에서도 동일한 서비스를 제공하고,

이를 도커 컨테이너를 활용하여 독립적인 환경을 제공할 수 있음.

즉, 도커 이미지는 서비스 실행을 위한 파일, 도커 컨테이너는 도커 이미지를 기반으로 독립된 환경으로 실행 시켜주는 역할

 

VM 과 차이는 ?

 

VM 는 운영체제 위에서, 컨테이너는 운영체제를 포함하지 않고 도커 엔진 위에서 작동

→ 때문에 VM과 비교했을 때 가벼움

또한, 도커 엔진의 컨테이너는 호스트 OS ( 도커를 구동 중인 운영체제 ) 의 커널을 컨테이너가 공유 받아 활용하는 형태로 효율적인 자원 분배 가능

## 커널이란? 운영체제 중 컴퓨터 자원을 관리하는 부분

 

도커는 기본적으로 리눅스 OS 상에서 동작

때문에, MAC 과 같은 OS 에서 구동시 중간 단계에 가상 머신을 이용해야만 함

 

Docker Network

도커에서는 컨테이너 실행 시마다 내부 IP 가 동적으로 할당되며, 내장 DNS 를 통해 동일한 네트워크 내에서는 서로 다른 컨테이너 간 IP 가 아닌 컨테이너명으로 접근 가능

 

작동 방식

 

 

Docker Client -> 클라이언트에서 전달받은 명령어를 dockerd 에게 REST API 형태로 전달

Docker Daemon ->

컨테이너를 시작하기 전, 로컬 이미지가 있는지 확인하고 없을 경우 Repository 에서 이미지를 가져옴

( 외에도 보안, 네트워크, 다른 데몬과의 통신 등의 역할을 담당하는 부분 )

Containerd -> 도커 이미지를 runc가 실행할 수 있는 OCI 번들로 변환함

Runc ->

OS 커널에 접속, 컨테이너를 만드는데 필요한 구성요소를 묶어 컨테이너를 생성 후 종료

shim ->

Runc 가 컨테이너를 생성하고 종료가 되면, shim 이 상위 프로세스가 되어 컨테이너의 생명 주기를 관리

'Dokcer' 카테고리의 다른 글

Docker Swarm 구축  (1) 2025.09.14
docker hub 사용법  (0) 2024.08.18
docker compose - springboot와 여러 컨테이너 함께 띄우기  (0) 2024.08.16
도커(Docker) - Dockerfile, build, run  (0) 2024.07.27