데브코스/영상과제
도커가 뭐고 왜 쓰는건가요?
민발자
2024. 12. 16. 12:43
728x90
https://youtu.be/tPjpcsgxgWc?si=Q6CuBS-hxcKqFPer
도커?
컨테이너화기술을 활용한 오픈소스 플랫폼
애플리케이션을 더 쉽게 배포, 실행, 확장할 수 있도록 도와주는 도구
애플리케이션과 그 실행 환경을 일관되게 패키징
다양한 환경에서 애플리케이션을 같은 방식으로 실행할 수 있도록 도와줌
도커는 기본적으로 컨테이너라는 가벼운 가상화 환경을 사용해 실행
애플리케이션과 그에 필요한 모든 환경(라이브러리, 설정 파일 등)을 포함하고 있어 컨테이너가 실행되는 환경이 무엇이든 애플리케이션이 동일한 방식으로 실행
도커 구성 요소
- 도커 엔진
- 도커 컨테이너를 관리하고 실행하는 기본적인 엔진, 호스트 OS위에서 도커 컨테이너를 실행하고 관리
- 도커 이미지
- 애플리케이션과 그 의존성을 포함한 읽기 전용 템플릿 실행될 애플리케이션과 그 환경을 설명하는 템플릿
- 도커 컨테이너
- 도커 이미지에서 실행되는 실제 실행 환경, 컨테이너는 격리된 환경에서 애플리케이션 실행
- 도커 허브
- 도커 이미지를 저장하고 배포하는 중앙 리포지터리
도커 사용 이유
- 개발 환경의 표준화
- 개발, 테스트, 운영환경이 다른 경우 같은 애플리케이션이라도 실행 결과가 달라짐
- 도커는 애플리케이션 실행을 컨테이너 안에 독립적인 환경에서 실행해 개발 환경과 운영환경의 불일치를 해결
- 이미지 사용해 환경설정을 동일화함
- 애플리케이션 배포 용이
- 서버로 배포하거나 클라우드 환경에서 실행할 때 환경에 구애받지 않고 빠르고 일관된 방식으로 배포 가능
- 컨테이너는 OS 전체를 포함하지 않고 애플리케이션과 관련된 부분만 포함하기 때문에 효율적
- 애플리케이션을 컨테이너화하여 어디서든 동일하게 실행
- 리소스 효율성(경량화된 가상화)
- 도커는 호스트 OS의 커널을 공유하면서 별도의 운영체제 설치 없이 애플리케이션만 격리시커 실행
- 가상 머신과 비슷한 방식으로 작동하지만 더 가벼운 리소스 소비와 속도가 빠름
- 가상 컴퓨팅은 한 물리적 컴퓨터 안에서 각각 OS를 가동하는 가상 컴퓨터들이 물리적 자원을 분할해서 사용해 성능에 한계가 생김
- 도커는 OS까지 내려가지 않고 실행 환경만 독립적으로 실행해 가상 컴퓨팅보다 가볍고 빠름
- 버전 관리와 롤백
- 이미지라는 형태로 애플리케이션 환경 버전 관리할 수 있음
- 이전 버전으로 쉽게 롤백 가능
- 확장성
- 도커는 마이크로 서비스 아키텍처 지원
- 각 서비스를 독립적인 컨테이너로 실행해 배포, 확장, 업데이트 가능하며 충돌 없이 운영 가능
- 자동화와 DevOps
- CI/CD 파이프 라인에서 도커를 사용하면 코드를 빌드하고 테스트하며 배포 과정을 자동화하기 쉬움
728x90