Docker란?

2020. 11. 1. 14:13DEV/Docker

반응형

초보를 위한 도커 안내서 - 도커란 무엇인가? SERIES 1/3
초보를 위한 도커 안내서 - 설치하고 컨테이너 실행하기 SERIES 2/3
초보를 위한 도커 안내서 - 이미지 만들고 배포하기 SERIES 3/3

Docker : Container를 관리하는 Platform

  • 컨테이너 기반의 오픈소스 가상화 플랫폼
  • 다양한 프로그램, 실행 환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리 단순화해줌
  • Back-end, Database server, Message Queue > Container로 추상화 가능
  • 조립 PC, AWS, Azure, Google cloud 등 어디에서든 실행 가능

Container

  • 격리된 공간에서 프로세스가 동작하는 기술
  • Virtual Machine
    - 호스트 OS에 다른 OS를 가상화해서 사용하는 방식
    - 느리고 무거운 관계로 운영 환경에 사용 불가
  • Container
    - 리눅스 컨테이너와 마찬가지로 단순히 프로세스를 격리 시켜 가볍고 빠름
    - 하나의 서버에 여러 개의 컨테이너 실행 시 서로 영향을 끼치지 않고 독립적으로 실행

도커의 기본 네트워크 모드는 Bridge모드로 약간의 성능 손실이 있다. >> 네트워크 성능이 중요한 프로그램의 경우 --net=host 옵션을 고려해야 한다.

VMware vs Docker

Image

  • 컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있는 것
  • 상태값을 가지지 않고 변하지 않는다(Immutable)
  • 컨테이너는 이미지를 실행한 상태라고 볼 수 있고 추가되거나 변하는 값은 컨테이너에 저장
  • 같은 이미지에서 여러개의 컨테이너를 생성할 수 있고 컨테이너의 상태가 바뀌거나 컨테이너가 삭제되더라도 이미지는 변하지 않고 그대로 남아있다.
  • 컨테이너를 실행하기 위한 모든 정보를 가지고 있기 때문에 더 이상 의존성 파일을 컴파일하고 이것저것 설치할 필요가 없다.

Layer 저장 방식

Read-Only 이미지로 구성된 파일 시스템(Layer A+B+C) 이미지 위에 Read/Write Layer(eg. Web app source)를 올려 버전만 변경하는 방식 사용으로 효율적인 이미지 관리 가능

Image Url

Docker image url

ubuntu 14.04 이미지

  • docker.io/library/ubuntu:14.04 또는 docker.io/library/ubuntu:trusty
  • docker.io/library: 생략가능 > ubuntu:14.04 로 사용 가능
  • 태그 기능을 잘 이용하면 테스트나 롤백도 쉽게 가능

DockerFile

  • 이미지를 만들기 위해 파일 자체에 DSL(Domain-Specific Launguage)란 언어로 이미지 생성 과정의 기록
  • 소스 및 설정 파일 버전 관리 가능
  • 원한다면 누구나 이미지 생성과정을 보고 수정 가능

기타 장점

  • Command와 API : 빠른 업그레이드 중
  • 로깅, 모니터링, 스토리지, 네트워크, 컨테이너 관리, 배포 등 다양한 분야에서 다양한 툴들이 존재
반응형

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

Mac OS에 Docker 설치하기  (0) 2020.09.23