본문 바로가기

Cloud Study/Docker

[Docker] 도커란 무엇인가

Docker 에대해서

Created: Jul 13, 2020 9:15 AM
Tags: docker

도커란?

Docker 를 사용하면 리눅스 컨테이너로 보다 쉽게 관리하고 실행 할 수 있다.
가장 큰 특징은 이식성인대, 이는 개발환경, 테스트 환경, 서비스 환경을 모두 동일하게 사용할 수 있다.

도커의 특징


  1. 서버를 코드 형태로 정의

    도커는 이미지를 사용하여 컨테이너를 실행한다, 이 컨테이너는 하나의 애플리케이션을 싱행하는 서버처럼 동작한다. 이미지를 제작할 때 코드형태로 정의하여 작성할 수 있다.

  2. 이식성
    애플리케이션 개발단계는 크게 개발 단계, 테스트 단계, 서비스 단계로 나뉜다.
    이때 각 단계의 환경을 통일하기는 쉽지 않다. 하지만, 도커를 사용하면 컨테이너에 모든 환경을 구축하기 때문에 도커만 설치하면 된다.

  3. 상호운용성

    Google, Amazon, IBM, Red Hat 등 다양한 벤더에서 지원하기 때문에 다양한 시스템 과 오픈소스를 연계하여 사용가능하다.

도커의 구조


  1. 이미지

    도커로 리눅스 컨테이너를 생성하려면 미리 제작된 이미지가 존재 해야 한다.
    이미지는 여러 개의 레이어로 이루어져 있으며, 각 레이어는 Read Only 상태로 사용된다.
    이미지로 컨테이너를 실행하여 파일을 생성,삭제한다면 새로운 레이어를 만들어 내용을 저장한다.

  2. 저장소

    컨테이너를 생성하기 위해서는 이미지가 필요하고, 이미지는 호스트가 아닌 외부에 저장되어 공유할 수 있 어야 한다. 이 저장되는 위치를 저장소라 한다.
    저장되는 위치에 따라 퍼블릭 이미지 저장소프라이빗 이미지 저장소로 나눌 수 있다.
    이미지 저장소는 대표적으로 도커 허브 (Docker Hub)가 있으며, 도커 허브에는 퍼블릭 이미지 저장소와 프라이빗 이미지 저장소 모두 사용 가능하다. 또한 Habor 와 도커 레지스트리 같은 프라이빗 이미지 저장소를 별도로 만들어 운영할 수 있다.

  3. 컨테이너

    컨테이너는 이미지의 실행 형태이다. 이미지가 메모리에 올라가면, 컨테이너, 컨테이너가 디스크에 저장되어 있으면 이미지다. 하나의 컨테이너에는 하나의 애플리케이션만 실행되는 것을 권장한다.

도커의 기능


  1. 이미지생성

    도커는 다양한 방법으로 이미지를 생성할 수 있다. 대표적으로 Dockerfile이며, 컨테이너를 이미지로 생성하는 docker commit 명령과 컨테이너의 파일 시스템으로 이미지를 생성하는 docker exportdocker import 명령이 있다.

  2. 이미지 공유

    도커는 저장소를 사용하여 이미지를 공유한다. 대표적으로 Dockerfile이며, 컨테이너를 이미지로 생성하는 docker commit 명령과 컨테이너의 파일 시스템으로 이미지를 생성하는 docker exportdocker import 명령이 있다.

  3. 컨테이너 생성

    도커는 컨테이너를 생성하고 관리를 할 수 있는 컨테이너 런타임이다. 컨테이너를 생성하고, 네트워크 또는 볼륨과 같은 도커 오브젝트를 생성한 뒤 컨테이너에 연결하여 사용할 수도 있다.