danc
danc*dev
danc
  • 분류 전체보기
    • codestates_BE_bootcamp39
      • 주단위 일기
      • 회고
    • programming
      • JAVA
      • SPRING
      • GENERAL
      • LINUX
      • ALGORITHM
      • ERROR_HANDLING
    • web
      • NETWORK
      • DB
      • HTML
      • CSS
    • kr
    • nz

최근 글

인기 글

태그

  • TIL
  • TIL 일기
  • css
  • 회고
  • 윈도우 11 우분투
  • AOP
  • TIL일기
  • 일기
  • 코드스테이츠 백엔드
  • HTTP
  • 코드스테이츠
  • React에서 Authorization헤더

최근 댓글

티스토리

hELLO · Designed By 정상우.
danc

danc*dev

docker 개념
programming/GENERAL

docker 개념

2022. 8. 4. 22:02

docker

Application을 구동하는데 필요한 모든 것들을 docker Container안에 넣은 다음에
어떤 환경에서든 구애받지 않고 애플리케이션을 실행할 수 있도록 해 준다. 

이렇게 컨테이너 형식으로 애플리케이션을 관리할 때 다음과 같은 이점들이 있다. 

  • 의존성 충돌 문제를 해결한다
  • 개발 및 배포 환경의 일치화 
  • 수평적인 확장과 새로운 내용의 배포를 쉽게 해준다
    • ex) kubernetes의 orchestration tool

큰 흐름으로 보자면

 

dockerfile 생성 및 build  >>  이미지를 만든다  >>  컨테이너를 만든다  >>  배포하고  >>  구동한다 

 


docker의 구성요소

도커를 구성하기 위해서는 3가지의 요소가 필요하다. 

 

Dockerfile

애플리케이션을 구동하는데 필요한 정보들 [ 환경변수, 스크립트, 필수 파일, 의존성 등] 
을 정리해놓은 일종의 설명서라고 보면 된다. 


Container

컨테이너는 application이 의존성, 시스템 & 네트워크 환경의 영향을 받지 않고 docker라는
샌드박스 같은 기술 위해 독립적인 공간에서 각각 실행될 수 있도록 만든 박스라고 생각하면 된다. 


Image

모든 container는 이미지로부터 생성된다.
이미지는 애플리케이션의 'SNAPSHOT'이라 보면 되고 한번 만들고 나면 불변의 특징이 있다.
자바 class파일이라 생각하면 될 듯  


VM vs Container

 

 

Virtual Machine Container
운영체제 포함  운영체제 미포함 (호스트 OS의 커널을 공유*)
Hypervisor 위에서 동작 (VM구동 소프트웨어) Container Engine위에서 동작(docker같은)
상대적으로 무겁다 상대적으로 가볍다

 

* 컨테이너가 호스트와 어떤 것을 공유/격리하는가?

cpu 공유
메모리 공유
리눅스 커널 공유
네트워크 격리
파일 격리
프로세스 격리

 


Container 배포 방식

Local환경에서 만든 이미지를 'Container Registry'로 'PUSH를 한다. 
필요한 서버나 개발자 pc에서 'Container Registry'로부터 이미지를 'PULL' 해온다.
(이때 받는 입장에서 컨테이너 엔진이 설치돼있어야 함) 

public private
dockerhub AWS
RED HAT Quay.io Google Cloud
Github  Packages Microsoft Azure

 

저작자표시 (새창열림)

'programming > GENERAL' 카테고리의 다른 글

[EC2] Nginx를 이용한 React 배포  (0) 2022.09.03
Git 입문  (0) 2022.05.03
Git command 정리  (0) 2022.05.03
Git workflow process  (0) 2022.05.03
2진수 계산  (0) 2022.04.26
    'programming/GENERAL' 카테고리의 다른 글
    • [EC2] Nginx를 이용한 React 배포
    • Git 입문
    • Git command 정리
    • Git workflow process
    danc
    danc
    Backend 개발자를 목표로 공부 중 입니다.

    티스토리툴바