[도커 #1] 도커 배경

[도커 #1] 도커 탄생 배경을 정리했습니다.
도경원's avatar
Jul 29, 2025
[도커 #1] 도커 배경

1. 도커는 왜 나왔나?

한 줄 요약
“개발한 환경 그대로 배포하고 실행되게 하려고”

2. 도커가 나오기 전의 현실

1. 개발 환경 = 운영 환경 불일치

  • 개발자는 윈도우에서 개발했는데, 서버는 리눅스
  • 로컬에선 잘 되는데 서버에선 안 됨

2. 의존성 지옥 (Dependency Hell)

  • 앱 실행하려면 특정 버전의 Python, Java, DB, nginx...
  • 누가 어떤 버전을 설치했고, 순서가 어땠는지에 따라 충돌 발생
  • 개발자마다 환경 세팅하는 데 하루 이틀씩 날림

3. 배포 = 고통

  • 코드 배포할 때마다 설정 파일, 패키지, 명령어 다 챙겨야 함
  • 누락된 게 하나라도 있으면 서버에서 안 돌고 시간 낭비

3. 컨테이너 기술의 등장

애초에 "환경 + 실행코드 + 설정"을 묶어서 실행시키면 안 될까?
  • 운영체제 수준의 가상화 기술을 활용해서 작고, 빠르고, 고립된 실행 환경을 만든 것
  • 그걸 쉽게 쓸 수 있도록 만든 게 바로 Docker

4. 도커의 탄생 배경 요약

문제 상황
도커의 해결 방식
환경 불일치
컨테이너에 모든 실행환경을 통째로 패키징
의존성 충돌
독립적인 컨테이너 안에서 격리 실행
배포 복잡
docker run 한 줄로 실행 가능
VM은 너무 무거움 (느림, 용량 큼)
도커는 가볍고 빠름

5. 역사 간단 요약

  • 2013년, Solomon Hykes가 도커를 오픈소스로 발표
  • 리눅스의 LXC(Linux Container) 기술 위에 사용하기 쉬운 인터페이스 구축
  • 이후 개발 → 빌드 → 테스트 → 배포 전체 파이프라인을 통합하면서 폭발적으로 성장

6. 왜 도커는 이렇게 널리 쓰이게 되었을까?

  • 빠르고 가볍다
  • 똑같은 환경을 누구든 똑같이 쓸 수 있다
  • CI/CD, 클라우드, 마이크로서비스랑 찰떡궁합
 
Share article

Gyeongwon's blog