#1. Docker란?

devplaypark·2021년 10월 15일
0

Docker

목록 보기
1/1
post-thumbnail

1.도커란?

  • 컨테이너 기반의 오픈소스 가상화 플랫폼
  • 계속해서 바뀌는 개발 환경 -> 빠르게 쉽게 적용하자!
  • 어떠한 프로그램도 컨테이너로 만들수 있다.
  • 어디에서든 돌아간다.
  • 리눅스 커널의 여러 기술을 활용
  • 하드웨어 가상화 기술보다 가벼움
  • 이미지 단위로 프로세스 실행 환경 구성
  • 컨테이너라는 표준으로 서버를 배포 -> 모든 서비스 배포 과정이 동일

(1) 이미지

  • 이미지에서 컨테이너를 생성 -> 반드시 이미지를 만드는 과정이 필요
  • Dockerfile을 이용하여 이미지를 만들고 처음부터 재현 가능
  • 이미지 배포 방법
    1. 빌드 서버에서 이미지 생성
    1. 해당 이미지를 이미지 저장소에 저장
    2. 운영서버에서 이미지를 불러옴

(2) 컨테이너?

  • 컨테이너는 도커의 핵심
  • 컨테이너는 호스트 시스템의 커널을 사용한다.
  • 컨테이너는 이미지에 따라서 실행되는 환경(파일시스템)이 달라진다.
  • 컨테이너는 삭제 후 새로 만들면 모든 데이터가 초기화됨
    - 그러니까 -v 옵션으로 데이터를 보존하자. -> 외부 스토리지와 링크
    • 그러니까 세션/캐시를 memcashed나 redis등을 사용해서 외부에서 관리

"컨테이너는 프로세스지만, 프로세스라고 부르기보다는 컨테이너라고 부르는 데는 이유가 있는 법입니다. 컨테이너는 (주로) 리눅스 커널에 포함된 프로세스 격리 기술들을 사용해서 생성된 특별한 프로세스입니다."


2. VM과 도커의 차이는

  • VM과 도커의 차이는?
  • 가상머신처럼 독립적으로 실행
  • !! But, 가상머신보다 빠르고 쉽고 효율적이다.

"가상머신은 운영체제 위에 하드웨어를 에뮬레이션하고 그 위에 운영체제를 올리고 프로세스를 실행하는 반면에, 도커 컨테이너는 하드웨어 에뮬레이션 없이 리눅스 커널을 공유해서 바로 프로세스를 실행한다."


참고

profile
devplaypark

0개의 댓글