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