🌷 INTRO
🌾 도커? 도커 컨테이너? 도커 이미지?
도커라는 말이 나오면, 컨테이너, 이미지 등
여러 개념을 접하게 되는데,
각각 어떤 흐름으로 사용되는지 앞서,
그 관계성에 대해서 간략히 집고 넘어간다.
아래 그림으로 설명하자면,

- 도커는 컨테이너를 관리하는 프로그램
- 도커 이미지는 컨테이너를 만들기 위한 템플릿 즉 설계도
- 도커 컨테이너는 도커 이미지가 실행되는 환경
- 컨테이너와 이미지는 둘 중 하나가 누락되면 존재 할 수 없다, 둘은 쌍둥이라고 생각해면 쉽다.
🌾 도커
- 도커는 응용 프로그램과 그 종속성을 격리된 환경인 컨테이너로 패키징하여 실행할 수 있도록 해주는 플랫폼
- 이를 통해 다양한 환경에서 프로그램을 일관되게 실행할 수 있으며, 개발과 운영 환경 간의 차이로 인한 문제를 최소화
🌾 도커 이미지
- 정의
- 도커 이미지는 컨테이너를 생성하기 위한 템플릿이나 설계도로, 실행할 프로그램과 그에 필요한 파일 및 의존성을 포함하고 있음
- 사용 방법
- 이미지는 각 컨테이너에 실행 환경을 정의, Dockerfile이라는 설정 파일에 기반하여 생성
- 이 파일에는 설치할 소프트웨어와 그 설정이 명시되어 있음
- 장점
- 도커 레지스트리를 통해 다른 개발자와 쉽게 공유 가능
- 이미지는 변경 불가하며, 새 버전은 기존 이미지 기반으소 생성
🌾 도커 컨테이너
- 정의
- 도커 컨테이너는 도커 이미지의 실행 인스턴스
- 환경이 격리되어 있어, 여러 애플리케이션이 충돌하지 않고 독립적으로 실행될 수 있게 돕는다
- 역할
- 각 컨테이너는 격리된 환경에서 실행되어 애플리케이션과 관련된 기능을 수행
- 컨테이너 내에서 발생한 문제는 다른 컨테이너와는 무관하게 접근
- 특징
- 일반 가상 머신보다 훨씬 가볍고 빠르게 실행 가능
- 각 컨테이너는 쉽게 생성, 수정 또는 삭제할 수 있으며, 필요할 때마다 재사용할 수 있음
🌷 도커를 왜 사용하지?
🌾 환경 일치를 위함
도커를 사용하면 모든 팀원이 같은 환경에서 작업할 수 있음
- 다른 팀원과 같이 협업할 때 내 파이썬은 1.34, 영미의 파이썬은 1.26, 이렇게 버전이 다를 수 있음
- 이런 버전 차이는 때때로 충돌을 일으키며, 프로젝트 실행이 안되는 상황이 발생
코드화된 환경 자동으로 설치
- Dockerfile을 통해 언어와 패키지 버전을 명시하여 자동으로 설치 가능
- 설정 오류를 줄이고 쉽게 환경 재구성 가능
🌾 용이한 배포와 관리
빠른 배포
- 도커 이미지를 사용하여 애플리케이션 패키징하고 배포 가능
- 필요한 경우 즉각적으로 확장할 수 있음
에러 독립
- 각 도커 컨테이너는 독립적으로 실행되기 때문에,
- 한 컨테이너의 문제가 다른 컨테이너에 영향을 미치지 않음