Docker 컨테이너 기본 개념 입문 가이드
'제 컴퓨터에서는 잘 됐는데요'라는 말을 줄여주는 기술, 그것이 바로 컨테이너입니다.
컨테이너와 가상머신의 차이
가상머신은 하이퍼바이저 위에서 각각 별도의 운영체제를 실행하지만, 컨테이너는 호스트 운영체제의 커널을 공유하면서 프로세스 단위로 격리됩니다. 이 덕분에 컨테이너는 훨씬 가볍고 시작 속도가 빠릅니다.
Dockerfile 기본 구조
FROM node:20-alpine
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
CMD ["node", "server.js"]
각 줄은 이미지의 레이어를 구성하며, 위에서부터 순서대로 실행됩니다. 변경이 적은 명령을 위쪽에 배치하면 빌드 캐시를 효율적으로 활용할 수 있습니다.
이미지 빌드와 컨테이너 실행
docker build -t myapp .— 이미지 빌드docker run -p 3000:3000 myapp— 컨테이너 실행 및 포트 매핑docker ps— 실행 중인 컨테이너 목록 확인
볼륨을 통한 데이터 영속성
컨테이너는 기본적으로 종료되면 내부 변경사항이 사라집니다. 데이터베이스처럼 데이터를 유지해야 하는 경우에는 볼륨을 마운트하여 호스트에 데이터를 영속적으로 저장해야 합니다.