설명
- 컨테이너는 애플리케이션의 한 구성 요소를 격리된 프로세스로 실행하는 방식입니다.
- 가상 머신처럼 운영체제를 통째로 복제하는 것이 아니라, 같은 호스트 커널을 공유하면서 필요한 파일과 설정만 묶어 실행합니다.
- Docker는 이미지를 만들고, 컨테이너를 실행하고, 네트워크와 저장소를 연결하는 과정을 표준화해 줍니다.
- 핵심 가치는 "내 컴퓨터에서 되던 것"을 팀원, CI, 운영 환경에서도 같은 방식으로 재현하기 쉽게 만든다는 점입니다.
- 그래서 Docker는 단순 실행 도구가 아니라, 환경 차이를 줄이는 배포 단위이자 협업 규약으로 이해하는 편이 좋습니다.
짧은 예제
text
웹 앱을 실행하려면
- 로컬에는 Node 설치 필요
- DB는 PostgreSQL 설치 필요
- 팀원마다 버전이 다를 수 있음
Docker를 쓰면
- 앱 컨테이너
- DB 컨테이너
를 같은 설정으로 실행할 수 있음빠른 정리
| 개념 | 의미 |
|---|---|
| 컨테이너 | 격리된 실행 단위 |
| 이미지 | 컨테이너를 만들기 위한 읽기 전용 청사진 |
| Docker | 이미지, 컨테이너, 네트워크, 볼륨을 다루는 플랫폼 |
| 장점 | 환경 일관성, 배포 재현성, 설치 단순화 |
| 한계 | 운영체제 가상화 전체를 대체하는 것은 아님 |
주의할 점
Docker를 쓰면 모든 문제가 사라지는 것은 아닙니다. 다만 "어떤 환경에서 실행되는가"를 코드와 설정으로 함께 관리하기 쉬워져, 팀 작업과 배포 흐름이 훨씬 단단해집니다.
참고 링크
2 sources