본문 바로가기

Tech/Docker

[Docker] 도커 개념 정리

반응형

Docker

 

도커는 어플리케이션의 개발, 실행 관리 등을 할 수 있도록 해주는 오픈 플랫폼이다.

주로 개발 환경을 관리하는 가상 환경과 같은 플랫폼으로 개발 인프라를 관리하는데에 사용한다.

도커를 사용하여 개발 인프라를 관리하고 이를 기반으로 개발, 배포 등을 진행하여 사용자의 인프라에 상관없이 어플리케이션을 실행할 수 있도록 한다.

 

 

The Docker platform

 

도커는 컨테이너라고 부르는 독립된 환경을 통해서 어플리케이션을 패키징하고 실행할 수 있다. 컨테이너를 사용하여서 현재 로컬의 환경과는 상관없이 어플리케이션 실행에 필요한 독립된 개발환경을 구축할 수 있다. 또한 구축된 컨테이너를 공유, 배포할 수 있다.

 

 

What can I use Docker for?

 

■ application CI/CD

  - 로컬 컨테이너를 통해서 개발하고자 하는 어플리케이션을 위한 표준화 된 환경을 구축할 수 있다.

  - 도커 컨테이너를 사용하여서 CI/CD 작업환경을 구축할 수 있다.

    • 컨테이너를 사용하여 로컬 작업한 내용들을 동료들과 공유할 수 있다.

    • 공유한 어플리케이션들을 테스트 환경에서 테스트할 수 있다.

    • 테스트하면서 수정된 부분이 있는 경우 재배포하여 테스트 환경에서 다시 테스트를 진행한다.

    • 테스트가 완료되면 새로운 이미지를 실제 운영환경에 배포한다.

 

■ Responsive deployment and scailing

  - 도커 컨테이너는 이식성이 좋아서 랩탄, 가상환경, 데이터 센터, 클라우드 등 다양한 환경에 적용하여 실행시킬 수 있다.

  - 또한 가볍기 때문에 실시간 작업과 같이 동적인 환경에도 적용할 수 있다.

 

■ Running more workloads on the same hardware

  - 도커 컨테이너는 다른 가상환경들에 비해 가볍고 빠르기 때문에 리소스 측면에서 장점을 가지고 있다.

 

 

Docker Architecture

 

 

도커 시스템 구조 (https://docs.docker.com/get-started/overview/)

 

■ Docker daemon (dockerd)

  - Docker API 요청을 받고, 이미지, 컨테이너, 네트워크, 볼륨 등의 docker object들을 관리한다.

  - 다른 daemon들과의 연동을 통해서 docker 서비스를 관리한다.

 

 

■ Docker Client (docker)

  - 사용자들이 입력한 docker command를 dockerd로 전달하여 Docker API를 사용할 수 있도록 한다.

 

 

■ Docker Registry

  - docker image를 저장하는 저장소로 public registry인 Docker Hub은 docker가 이미지를 가져오는 기본 저장소로 설정되어있다.

  - docker pull / docker run: registry에서 이미지를 가져온다.

  - docker push: registry에 이미지를 등록한다.

 

 

■ Docker objects

  - Image

    • 도커 이미지는 도커 컨테이너를 생성 및 실행하기 위해 필요한 정보 (파일, 설정값 등)들을 포함하고 있는 read-only 템플릿이다.

    • 사용자들은 새로운 도커 이미지를 직접 생성하거나 다른 사람이 만들어놓은 이미지를 registry로 부터 가져와서 사용할 수 있다.

    • 도커 이미지를 빌드하기 위해서는 이미지를 만들고 실행하기 위한 각 단계들에 대해서 정의해놓은 Dockerfile을 작성해야한다.

    • Dockerfile의 각 라인들은 leyer를 생성하는데, Dockerfile을 수정하고 이미지를 재빌드 하는 경우 수정된 layer들만 재빌드 됩니다.

 

  - Container

    • 컨테이너는 이미지를 실행시켜 만든 가상환경이다.

    • Docker API와 CLI를 통해서 조작할 수 있다.

    • 컨테이너는 독립된 환경으로 다른 컨테이너 들이나 컨테이너가 실행되고 있는 로컬 머신과도 분리되어있다.

 

 

<referece>

- docker docs: get started - Docker overview

반응형

'Tech > Docker' 카테고리의 다른 글

[Docker] Docker Root Directory (도커 스토리지) 변경  (0) 2023.12.14
[Docker] Docker vs VM  (0) 2022.07.28
[Docker] Docker Compose  (0) 2021.09.05
[Docker] Dockerfile 개념 정리  (0) 2021.09.04