Docker소개와 개념

컨테이너와 Docker 개요

컨테이너가 무엇이고 Docker가 무엇을 자동화하는지, 개발 환경 일관성과 배포 재현성 관점에서 정리하는 입문 카드입니다.

마지막 수정 2026년 3월 19일

설명

  • 컨테이너는 애플리케이션의 한 구성 요소를 격리된 프로세스로 실행하는 방식입니다.
  • 가상 머신처럼 운영체제를 통째로 복제하는 것이 아니라, 같은 호스트 커널을 공유하면서 필요한 파일과 설정만 묶어 실행합니다.
  • Docker는 이미지를 만들고, 컨테이너를 실행하고, 네트워크와 저장소를 연결하는 과정을 표준화해 줍니다.
  • 핵심 가치는 "내 컴퓨터에서 되던 것"을 팀원, CI, 운영 환경에서도 같은 방식으로 재현하기 쉽게 만든다는 점입니다.
  • 그래서 Docker는 단순 실행 도구가 아니라, 환경 차이를 줄이는 배포 단위이자 협업 규약으로 이해하는 편이 좋습니다.

짧은 예제

text
웹 앱을 실행하려면
- 로컬에는 Node 설치 필요
- DB는 PostgreSQL 설치 필요
- 팀원마다 버전이 다를 수 있음

Docker를 쓰면
- 앱 컨테이너
- DB 컨테이너
를 같은 설정으로 실행할 수 있음

빠른 정리

개념의미
컨테이너격리된 실행 단위
이미지컨테이너를 만들기 위한 읽기 전용 청사진
Docker이미지, 컨테이너, 네트워크, 볼륨을 다루는 플랫폼
장점환경 일관성, 배포 재현성, 설치 단순화
한계운영체제 가상화 전체를 대체하는 것은 아님

주의할 점

Docker를 쓰면 모든 문제가 사라지는 것은 아닙니다. 다만 "어떤 환경에서 실행되는가"를 코드와 설정으로 함께 관리하기 쉬워져, 팀 작업과 배포 흐름이 훨씬 단단해집니다.

참고 링크

2 sources