컴퓨터 프로그래밍/Docker
[Docker] 도커는 왜 사용할까?
한33
2024. 9. 29. 17:09
1. 일관성 있고 격리된 환경
- 각 컨테이너가 다른 컨테이너를 방해하거나 의존하지 않고 격리된 방식으로 필요한 모든 리소스에 액세스할 수 있도록 앱과 리소스를 격리하고 분리하는 책임이 있다.
- 동일한 호스트에서 여러 컨테이너를 동시에 실행할 수 있다.
- 각 컨테이너는 할당된 리로스에서만 액세스할 수 있으므로 가동 중지 시간 등과 같은 여러 잠재적 문제의 위험을 줄이는 데에 도움이 된다.
- 컨테이너를 삭제하면 앱을 쉽게 제거할 수 있으며 앱에 임시 파일 등이 남아 있지 않는다.
2. 신속한 애플리케이션 구축
- 도커는 애플리케이션 배포 프로세스를 훨씬 더 빠르게 한다.
- 도커는 모든 개별 프로세스에 대한 컨테이너를 생성하고 이후에 도커 앱은 OS로 부팅되지 않으므로 많은 시간을 절약할 수 있다.
- 도커 이미지를 다운로드하여 다른 환경에서 실행하기만 하면 된다.
- 이러한 이미지는 크기가 상당히 작아서 신속한 애플리케이션 배포를 더욱 촉진한다.
- 도커는 CI/CD(지속적 통합 및 지속적 전달) 워크플로우에 매우 적합합니다.
3. 확장성 및 유연성 보장
- 일관된 환경으로 인해 도커 이미지는 여러 서버에서 쉽게 정렬할 수 있다. 예를 들어 애플리케이션 출시 중에 업그레이드를 수행해야 하는 경우 도커 컨테이너에서 편리하게 변경하고 테스트하고 새 컨테이너를 출시할 수 있다.
- 그 외에 응용 프로그램을 완전히 중단하지 않고도 효율적으로 정리하거나 복구할 수 있다.
- 여러 물리적 서버, 데이터 서버 또는 클라우드 플랫폼에 배포할 수 있는 기능이 있다.
- 도커를 사용하면 중복성을 위해 신속하게 복제를 생성할 수 있으며 애플리케이션이나 서비스를 즉시 시작 및 종료할 수 있어 작업이 훨씬 쉬워진다.
4. 휴대성 향상
- 도커 컨테이너로 만든 애플리케이션은 매우 휴대하기 쉽다.
- 도커 컨테이너는 Amazon EC2, Google Cloud Platform, VirtualBox, Rackspace 서버 등 모든 플랫폼에서 실행할 수 있지만 호스트 OS는 도커를 지원해야 한다.
- 애플리케이션과 모든 종속성이 도커 컨테이너에 함께 패키징되므로 도커를 지원하는 모든 시스템에 배포할 수 있으며 응용 프로그램이 유사하게 수행된다. 예를 들어 도커 컨테이너는 클라우드 환경에서 로컬 호스트로 빠르게 이동할 수 있으며 그 반대도 가능하다.
- 따라서 환경 설정 시 시간과 리소스 낭비, 환경 내 디버깅 문제 등 다양한 이점을 얻을 수 있다.
- 개발자가 개발 프로세스의 대응력과 민첩성을 높일 수 있도록 지원한다.
5. 비용 효율성
- 도커는 개발을 위해 더 많은 인프라 리소스의 필요성을 줄이고 개별 프로세스를 위해 생성된 컨테이너를 가상 머신에 비해 적은 메모리를 사용하는 컨테이너형 애플리케이션의 인스턴스를 사용하여 다른 애플리케이션과 공유할 수 있으므로 개발 및 구축 프로세스의 비용 효율성을 높일 수 있다.
- 도커를 사용하면 개발자가 단일 서버에서 여러 컨테이너를 실행할 수 있으므로 리소스를 효율적으로 사용할 수 있다.
- 도커는 기존 워크플로우에 비해 더 적은 수의 전문가 팀을 필요로 하므로 조직의 인건비도 최소화할 수 있다.
6. 내장 버전 제어 시스템
- 도커 컨테이너를 사용하면 도커 이미지에 대한 변경 사항을 약속하고 버전을 쉽게 제어할 수 있다. 예를 들어 현재 또는 업그레이드 된 이미지 버전에 문제가 있는 경우 이전 안정적인 버전의 도커 이미지로 빠르게 롤백할 수 있다.
- 도커를 사용하면 컨테이너의 연속적인 버전을 쉽게 추적하고 이전 버전으로 롤백하기 전에 차이점을 검사할 수 있다.
- 컨테이너는 내부적으로 모든 구성 및 종속성을 유지할 수 있으며 이전 계층의 구성 요소를 컨테이너에서 재사용하여 효율성을 높일 수 있다.
7. 보안
- 도커는 도커 컨테이너 내에서 실행되는 애플리케이션을 서로 완전히 격리하고 분리하는 책임을 지므로 개발자는 트래픽 코스를 완벽하게 제어할 수 있다.
- 특정 컨테이너는 인증된 액세스 권한이 없으면 다른 컨테이너의 데이터에 액세스할 수 없다. 그 외에는 각 컨테이너에 고유한 리소스 세트가 할당된다.
- 그러나 모든 적절한 보안 조치를 스스로 취하기 위해 도커 컨테이너에만 의존해서는 안 되며 전반적인 보안을 위해 다른 보안 영역도 고려해야 한다.