본문 바로가기
Containers/Docker

Docker란?

by shinebee* 2020. 7. 13.

1. Docker란?

  • Docker는 2013 Docker사에서 Go lang으로 개발한 오픈소스 플랫폼이다.

  • Docker를 사용하여 리눅스 컨테이너를 더 쉽게 관리하고 사용할 수 있다.

  • Docker의 가장 큰 특징은 이식성인데, 이는 개발 환경, 테스트 환경, 서비스 환경을 모두 동일하게 사용할 수 있기 때문이다.

  • 컨테이너에 필요한 서비스 등을 다 넣어놓고 실행만 하면 된다는 개념

  • 부팅가능하지않다.

  • 모든 컨테이너는 docker file에 저장해서 공유한다.

 

  • 서버를 코드 형태로 정의

    • Docker는 이미지를 사용하여 컨테이너를 실행한다.

    • 이 컨테이너는 하나의 애플리케이션을 실행하는 서버처럼 동작한다.

    • Docker는 이미지를 제작할 때 코드형태로 정의하여 작성할 수 있다.

    • 따라서 서버를 코드형태로 정의할 수 있어 일관성을 유지하는 부분에서 편리하다.

 

  • 이식성

    • Docker를 사용하면 컨테이너에 모든 환경을 구축하기 때문에 도커만 설치하면 된다.

 

  • 상호운용성

    • Docker는 Google, Amazon, IBM, Microsoft, Red Hat 등 다양한 vendor에서 지원하기 때문에 다양한 vendor의 시스템 및 오픈소스와 연계하여 사용할 수 있다.

 

 

 

2. Docker의 구조

  • Image

    • Docker로 리눅스 컨테이너를 생성하려면 미리 제작된 이미지가 있어야한다.

    • 이미지는 다수의 layer로 이루어져있다.

    • 각 layer는 read only 상태로 사용된다.

    • 만약 이미지로 컨테이너를 실행하여 파일을 생성하거나 삭제한다면 새로운 layer를 만들어 내용을 저장한다.

    • 컨테이너에서 변경이 일어나도 이미지에는 변경이 일어나지 않는다.

    • 이미지 -> 찍어내기 위한 용도.

 

  • Storage

    • Docker Hub

    • 이미지는 호스트가 아닌 외부에 저장되어 공유할 수 있어야 한다.

    • 범위에 따라 public 이미지 저장소와 private 이미지 저장소로 나눌 수 있다.

    • Docker Hub는 public, private 이미지 저장소 둘 다 사용 가능하다.

 

  • Container

    • 컨테이너는 이미지의 실행 형태이다.

    • 디스크 상에 저장되어있으면 이미지, 이 이미지를 boot해서 실행시키면 컨테이너이다.

    • 컨테이너 하나 당 하나의 이미지가 권장된다.

 

 

 

3. Docker의 기능

  • 이미지 생성

    • Docker는 다양한 방법으로 이미지를 생성할 수 있다.

    • Dockerfile이 제일 대표적

    • docker commit

    • docker export

    • docker import

 

  • 이미지 공유

 

 

  • 컨테이너 생성

    • Docker는 컨테이너를 생성하고 관리를 할 수 있는 container runtime이다.

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

이미지 제작  (0) 2020.07.20
간단한 Docker 실습  (0) 2020.07.20
이미지 다운로드 / 관리 / 삭제  (0) 2020.07.14
Install Docker (Ubuntu)  (0) 2020.07.13

댓글