Docker란? 기본 개념

Ryan Cho·2025년 7월 17일

Docker

도커란 무엇인가?

리눅스 가상머신을 이용한, 컨테이너라는 가상의 '격리 환경'을 만들어 애플리케이션을 효율적으로 배포 및 실행이 가능한 가상화 플랫폼이다. 많이 사용하는 쿠버네티스는 이런 여러 도커 컨테이너를 관리하는 기술을 의미한다.

이런 컴퓨터 시스템 레이어 구조를 참고해서 리눅스 커널의 Linux VM을 통해 docker 엔진을 사용하기 위해 나는 Docker-Desktop이라는 애플리케이션을 사용했다 (가장 메모리 사용이 높음. 나중에 개인개발할때는 Podman 사용할거임)

도커의 핵심 요소

1. Image

이미지로 인해 인스턴스화되어 컨테이너를 생성가능하다. 클래스와 같은 개념이며, 애플리케이션 실행에 필요한 모든것을 포함한 read-only 템플릿이다.

2. Container

앞서 말한 이미지의 인스턴스개념이며 메모리에만 존재하여 컨테이너가 종료되면 데이터가 소멸된다.

3. Volume

볼륨은 데이터를 영구적으로 저장하기 위한 메커니즘으로, 컨테이너가 삭제되어도 데이터가 보존된다.

기본 실습

간단한 스크립트를 작성한 프로젝트를 만들고, 이를 도커에서 실행해보자.

// index.js

setInterval() 로 콘솔 1초마다 찍어주삼

이 파일을 도커에서 실행해보고싶은거다. 그러면 도커 설정파일이 필요한데, 기본이름은 Dockerfile 이다. (확장자 x)

// Dockerfile

FROM node:18          // 베이스 이미지
WORKDIR /app         // 작업 디렉토리 설정
COPY index.js .     // 파일 복사 (` .` 현재 디렉토리)
CMD ["node", "index.js"]  // 컨테이너 시작 시 실행할 명령어

정말 최소한의 설정만 해뒀다.

도커이미지 빌드

docker build -t counter-app . // container-app이라는 이름의 이미지 생성
이후

docker image ls로 해당 이미지 조회 가능

컨테이너 실행

docker run counter-app
또는
docker run -d counter-app  //백그라운드에서 실행
profile
From frontend to fullstack

0개의 댓글