Docker란 무엇입니까?

Docker를 통해 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있습니다

개요

Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼입니다. Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함되어 있습니다. Docker를 사용하면 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장할 수 있으며 코드가 문제없이 실행될 것임을 확신할 수 있습니다.

AWS에서 Docker를 실행하면 개발자와 관리자가 어떠한 규모에서든 매우 안정적이며 저렴한 방식으로 애플리케이션을 구축, 제공 및 실행할 수 있습니다.

최근 발표: Docker가 클라우드로의 최신 앱 제공 속도를 높이도록 개발자를 지원하기 위해 AWS와 협력합니다. 이 협업으로 개발자는 Docker Compose 및 Docker Desktop에서 현재 사용하는 것과 동일한 로컬 워크플로를 활용하여 Amazon ECS 및 AWS Fargate에 원활하게 앱을 배포할 수 있습니다. 자세한 내용은 블로그를 참조하세요.

Docker 작동 방식

Docker는 코드를 실행하는 표준 방식을 제공합니다. Docker는 컨테이너를 위한 운영 체제입니다. 가상 머신이 서버 하드웨어를 가상화하는 방식과 비슷하게(직접 관리해야 하는 필요성 제거) 컨테이너는 서버 운영 체제를 가상화합니다. Docker는 각 서버에 설치되며 컨테이너를 구축, 시작 또는 중단하는 데 사용할 수 있는 간단한 명령을 제공합니다.

AWS Fargate, Amazon ECSAmazon EKS, AWS Batch와 같은 AWS 서비스를 사용하면 Docker 컨테이너를 대규모로 실행하고 관리할 수 있습니다.

Docker 작동 방식

Docker를 사용해야 하는 이유

Docker를 사용하면 코드를 더 빨리 전달하고, 애플리케이션 운영을 표준화하고, 코드를 원활하게 이동하고, 리소스 사용률을 높여 비용을 절감할 수 있습니다. Docker를 사용하면 어디서나 안정적으로 실행할 수 있는 단일 객체를 확보하게 됩니다. Docker의 간단한 구문을 사용해 완벽하게 제어할 수 있습니다. 폭넓게 도입되었다는 것은 Docker를 사용할 수 있는 도구 및 상용 애플리케이션의 에코시스템이 강력하다는 의미입니다.

더 많은 소프트웨어를 더 빨리 제공

Docker 사용자는 평균적으로 Docker를 사용하지 않는 사용자보다 7배 더 많은 소프트웨어를 제공합니다. Docker를 사용하면 필요할 때마다 격리된 서비스를 제공할 수 있습니다.

운영 표준화

작은 컨테이너식 애플리케이션을 사용하면 손쉽게 배포하고, 문제를 파악하고, 수정을 위해 롤백할 수 있습니다.

원활하게 이전

Docker 기반 애플리케이션을 로컬 개발 시스템에서 AWS의 프로덕션 배포로 원활하게 이전할 수 있습니다.

비용 절감

Docker 컨테이너를 사용하면 각 서버에서 좀 더 쉽게 더 많은 코드를 실행하여 사용률을 높이고 비용을 절감할 수 있습니다.

Docker를 사용하는 경우

Docker 컨테이너를 최신 애플리케이션 및 플랫폼을 생성하는 핵심 빌딩 블록으로 사용할 수 있습니다. Docker에서는 손쉽게 분산 마이크로 서비스 아키텍처를 구축 및 실행하고, 표준화된 지속적 통합 및 지속적 전달 파이프라인을 통해 코드를 배포하고, 고도로 확장 가능한 데이터 처리 시스템을 구축하고, 개발자를 위한 완전관리형 플랫폼을 생성할 수 있습니다. AWS와 Docker의 최근 협업으로 Docker Compose 아티팩트를 Amazon ECS 및 AWS Fargate에 보다 쉽게 배포할 수 있게 되었습니다.

마이크로 서비스

Docker 컨테이너를 통해 표준화된 코드 배포를 활용하여 분산 애플리케이션 아키텍처를 구축하고 확장합니다.

지속적인 통합 및 제공

환경을 표준화하고 언어 스택 및 버전 간의 충돌을 제거함으로써 애플리케이션을 더욱 빠르게 제공합니다.

데이터 처리

빅 데이터 처리를 서비스로서 제공합니다. 데이터 및 분석 패키지를 기술자가 아닌 사용자도 실행할 수 있는 이동식 컨테이너로 패키징합니다.

서비스로서의 컨테이너

안전한 IT 관리형 인프라와 콘텐츠로 분산 애플리케이션을 구축 및 제공합니다.

Docker FAQ

Docker를 사용하면 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장할 수 있으며 코드가 문제없이 실행될 것임을 확신할 수 있습니다. 이는 Docker가 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하기 때문에 가능한 것입니다. 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함되어 있습니다.

Docker 이미지는 컨테이너를 정의하는 읽기 전용 템플릿입니다. 이 이미지에는 코드에 필요한 라이브러리 및 종속성에 대한 정의를 비롯해 실행되는 코드가 포함되어 있습니다. Docker 컨테이너는 인스턴스화된(실행되는) Docker 이미지입니다. AWS에서는 Docker 이미지를 저장하고 신속하게 검색할 수 있는 이미지 레지스트리인 Amazon Elastic Container Registry(ECR)를 제공합니다.

가상 머신(VM)은 서버 하드웨어를 가상화(또는 직접 관리할 필요성을 제거)하는 반면, 컨테이너는 서버의 운영 체제를 가상화합니다. Docker는 컨테이너를 위한 운영 체제(또는 런타임)입니다. 컨테이너를 실행하려는 각 서버에 Docker Engine이 설치되어 컨테이너를 구축, 시작 또는 중단하는 데 사용할 수 있는 간단한 명령 세트를 제공합니다.

AWS에서 Docker 실행

AWS는 Docker 오픈 소스 및 상용 솔루션 모두에 대한 지원을 제공합니다. AWS에서 컨테이너를 실행하는 방법에는 몇 가지가 있습니다. 그중 Amazon Elastic Container Service(ECS)는 고도로 확장 가능하고 성능이 뛰어난 컨테이너 관리 서비스입니다. 고객은 로컬 Docker 환경에서 Amazon ECS로 직접 컨테이너화된 애플리케이션을 손쉽게 배포할 수 있습니다. AWS Fargate는 인프라를 배포하거나 관리하지 않고도 프로덕션에서 컨테이너를 실행할 수 있도록 지원하는 Amazon ECS를 위한 기술입니다. Amazon Elastic Container Service for Kubernetes(EKS)를 사용하면 손쉽게 AWS에서 Kubernetes를 실행할 수 있습니다. AWS Fargate는 서버를 프로비저닝하거나 관리하지 않고도 프로덕션에서 컨테이너를 실행할 수 있도록 지원하는 Amazon ECS를 위한 기술입니다. Amazon Elastic Container Registry(ECR)는 Docker 컨테이너 이미지를 손쉽게 저장하고 관리할 수 있도록 지원하는 안전한 고가용성 프라이빗 컨테이너 레지스트리로서, 빠르게 가져오고 보호하기 위해 저장 이미지를 암호화하고 압축합니다. AWS Batch를 사용하면 Docker 컨테이너를 사용하여 고도로 확장 가능한 배치 처리 워크로드를 실행할 수 있습니다.