Docker 정의

Docker

  •  컨테이너 기반의 오픈소스 가상화 플랫폼
  •  개발자가 쉽게 컨테이너를 생성하여 언제든(물리머신, 가상머신, 클라우드) 배포가 가능
  •  Docker를 사용하게 되면 손쉽게 개발 환경 가능하며,  여러명과 같이 프로젝트시 동일한 개발환경 구성 가능

VM vs Docker 차이점

  • VM :OS내에 Hypervisor(Vmware,Hyper-v) 설치하여 필요한 OS 추가 설치하여 운영(많은 리소스 사용)
  • Docker OS내에 Docker Engine을 설치하여 컨테이너 운영

Docker 라이프 사이클

(자세한 명령어는 : https://monta010.tistory.com/49 참조)

Docker PULL

  • Docker Registry(Docker Hub) images 다운로드

Docker PUSH

  • Docker 이미지를 Registry(Docker Hun) 업로드

Docker CREATE 

  • Docker 컨테이너 생성
  • Docker 실행은 docker start “컨테이너명” 

Docker START 

  • Docker 컨테이너 실행 

Dcoker STOP

  • Dokcer 컨테이너 중지

Docker RUN

  • Docker PULL , CREATE , START 3가지를 한번에 실행

Docker 이미지 레이어

  • Docker는 이미지를 가지고 Docker run을 하게 되면 Docker가 관리하고 있는 파일시스템 영역에 이미지를 저장한다.
  • Docker 이미지 레이어는 Dockerfile에 의해 실행되는 명령을 이미지 레이어에 각각 저장되며, 컨테이너가 실행되면 이미지 레이어 맨 상단에 “컨테이너 레이어”가 생성된다.
  • 이미지 레이어는 항시 읽기전용, 컨테이너 레이어는 읽기,쓰기 가능하다.
  • 모든 변화에 대해서는 컨테이너 레이어에서 이루어지면 컨테이너가 종료되면 컨테이너 레이어가 같이 삭제 된다,
  • 컨테이너 구조(이미지 레이어 + 컨테이너 레이어)

DockerFile 

FROM ubuntu

RUN apt -y update && apt -y upgrade

COPY ./test.txt /tmp

DockerFile 실행

#docker build --tag ubuntu:last .

Sending build context to Docker daemon  4.096kB
Step 1/3 : FROM ubuntu
 ---> 1318b700e415
Step 2/3 : RUN apt -y update && apt -y upgrade
 ---> Running in 35109980fec0
Step 3/3 : COPY ./test.txt /tmp
 ---> 450299795d00
Successfully built 450299795d00
Successfully tagged ubuntu:last
  • Dockerfile을 통해 명령어를 진행하게 되면 아래 같이 이미지 레이어, 컨테이너 레이어가 생성된다.
  • 그림과 같이 이미지 레이어 3개, 컨테이너 레이어 1개로 되어있지만, 모든 레이어가 준비가 되면 유니온 파일 시스템을 사용하여 여러개의 레이어를 하니의 파일 시스템으로사용 할 수 있게 해준다.
  • Docker에서 관리하는 모든 정보에 대해서는 /var/lib/docker 폴더에 저장
  • 저장 경로를 = Docker area , Backing FileSystem

Docker Resistry

  • Docker  이미지는 Docker Hub에 PULL명령어를 통해서 이미지를 다운로드하여 사용한다. Docker 이미지 배포시에 생성된 이미지를 Docker Hub PUSH하여 저장하기도 한다.(단 개인일경우 PUSH에 제약이 존재하며, 회사 일 경우네는 비용을 지불)
  • Docker 이미지를 주기적으로 배포하여 사용하는 고객이라면, 비용을 지불해야하는데, Docker Private Resistry를 구성하게 되면 무료, PUSH 횟수 제한 없이 무제한 배포를 하여 사용할 수 있다.
  • Private Resistry 생성하여 PULL , PUSH 과정 참조

Leave a Comment