728x90
반응형
SMALL
728x90
반응형
LIST
728x90
반응형
SMALL

■ Docker 사용 이유

1. 환경의 일관성

  - Docker는 애플리케이션과 그에 필요한 라이브러리, 종속성, 환경 변수 등을 하나의 컨테이너로 패키징하여 구동한다.

    이로 인해 개발 환경, 테스트 환경, 프로덕션 환경 등 모든 환경에서 애플리케이션을 일관성 있게 실행할 수 있다.

2. 빠른 배포

  - Docker 컨테이너는 가볍고 빠르게 생성, 시작 및 중지할 수 있으며, 가상 머신과 비교해 배포 속도가 훨씬 빠르다.

    이러한 특성으로 인해 개발자와 운영팀은 빠르게 애플리케이션을 배포하고 확장할 수 있다.

3. 효율적인 자원 관리

  - 가상 머신과 달리 Docker는 호스트 운영 체제의 커널을 공유하여 자원을 효율적으로 관리한다.

    이로 인해 더 많은 애플리케이션을 동일한 물리적 머신에서 실행할 수 있다.

4. 이식성

  - Docker 컨테이너는 독립적으로 실행되므로 어느 환경이든 동일한 방식으로 작동한다.

    개발 환경과 프로덕션 환경 사이의 차이를 최소화하여 애플리케이션 배포와 스케일링을 간편하게 만든다.

5. 강력한 이미지 관리

  - Docker 이미지는 컨테이너를 생성하는 데 필요한 모든 정보를 포함한다.

    이미지를 버전 관리하고 공유하여 애플리케이션을 쉽게 관리할 수 있다.

6. 마이크로서비스 아키텍처

  - Docker는 마이크로서비스 아키텍처를 구현하는 데 이상적이다.

    각 마이크로서비스를 독립적인 컨테이너로 실행하여 개별적으로 관리하고 확장할 수 있다.

7. 커뮤니티와 생태계

  - Docker는 거대한 커뮤니티와 풍부한 생태계를 가지고 있다.

    다양한 플러그인, 도구, 이미지 등이 사용자들에 의해 지속적으로 개발되고 공유되어 생산성을 향상시킨다.

8. 가상 머신과의 통합

  - Docker는 기존 가상 머신과 함께 사용할 수 있다.

    가상 머신 내부에 Docker를 설치하여 가상 머신의 이점과 컨테이너의 이점을 함께 활용할 수 있다.

 

■ Docker 공개

- Docker는 2013년에 처음으로 공개되었다. Docker는 Docker Inc.라는 회사가 개발하고 출시한 오픈 소스 프로젝트로 시작되었다.

  초기 버전은 dotCloud라는 회사에서 개발된 dotCloud PaaS(Platform as a Service)의 일부로 사용되었다.

  2013년 3월, dotCloud에서 프로젝트를 공식적으로 "Docker"라는 이름으로 발표하고, 4월에 첫 번째 베타 버전이 출시되었다.

  Docker는 빠르게 인기를 얻고 개발자들과 기업들 사이에서 컨테이너 기반 가상화 기술로서 널리 채택되기 시작했다.

  이후 Docker Inc.는 컨테이너 기술을 발전시키고 보급시키는데 지속적인 역할을 하면서 Docker 프로젝트를 발전시켜 왔다.

  2017년에는 Docker의 세컨드 버전인 "Docker CE"와 "Docker EE"를 발표하여 더 많은 사용자와 기업들이 Docker를 채택할 수 있도록 하였다.

  현재 Docker는 개발자들과 기업들 사이에서 매우 인기 있는 컨테이너 가상화 솔루션으로서 사용되고 있으며, 컨테이너 기반의 애플리케이션

  배포와 관리를 단순화하는 강력한 도구로 폭넓게 활용되고 있다.

 

■ Docker 단점

1. 복잡성

  - Docker는 기본적으로 컨테이너화된 애플리케이션을 생성하고 관리하는 작업을 단순화한다.

    그러나 처음 사용자들은 Docker의 개념과 동작 방식을 이해하는 데 시간이 걸릴 수 있으며, 복잡한 설정과 문제 해결이 필요할 수 있다.

2. 보안 위험

  - Docker 컨테이너는 호스트 운영 체제의 커널을 공유하므로, 악의적인 사용자가 컨테이너 내부에서 호스트 시스템에 영향을 미칠 수 있는

    보안 위험이 있다. 적절한 보안 관행과 격리를 적용해야 한다.

3. 자원 소비

  - Docker 컨테이너는 가상 머신과 비교하면 상대적으로 자원 소비가 적지만, 여전히 추가적인 자원을 요구한다.

    컨테이너화된 애플리케이션을 실행하는 데에는 일정 수준의 오버헤드가 발생할 수 있다.

4. Docker 호환성

  - 모든 애플리케이션이 Docker로 컨테이너화되지는 않는다.

    특히, 레거시 시스템이나 일부 특정 기술 스택은 Docker 컨테이너를 지원하지 않을 수 있다.

5. 크기 증가

  - Docker 이미지는 컨테이너를 생성하는 데 필요한 모든 요소를 포함하므로 이미지 크기가 커질 수 있다.

    큰 이미지는 네트워크 대역폭과 저장 공간을 소비하며, 이미지 배포 시에도 시간이 더 오래 걸릴 수 있다.

6. Docker Daemon 문제

  - Docker를 실행하기 위해 Docker Daemon이 항상 백그라운드에서 실행되어야 한다.

    이 데몬의 오작동이나 충돌은 컨테이너 운영에 영향을 미칠 수 있다.

7. Docker 파일 시스템 오버헤드

  - Docker는 호스트 시스템과 컨테이너 사이에 파일 시스템 매핑을 수행한다.

    매핑된 파일 시스템의 오버헤드가 발생할 수 있으며, 성능에 영향을 미칠 수 있다.

8. Docker 네트워킹 복잡성

  - 여러 개의 컨테이너가 동시에 실행되고 상호 작용할 때 네트워킹 설정과 연결에 대한 복잡성이 발생할 수 있다.

728x90
반응형
LIST

+ Recent posts