[Docker] Docker 개념

Docker

  • 컨테이너 기반의 오픈소스 가상화 플랫폼
  • 가상 머신처럼 독립된 실행 환경을 만들어줌

컨테이너

  • 호스트에서 실행되는 각각의 격리된 실행환경
  • 각각의 컨테이너에는 앱을 실행하는 데 필요한 라이브러리와 실행 파일들만 포함
  • 이러한 기술을 컨테이너 기술이라고 함
  • 어떤 환경에서든 똑같은 실행 환경을 구축할 수 있도록 함

이미지

  • 컨테이너 실행에 필요한 파일과 설정값을 포함하고 있는 것
  • 각 요소들의 설치된 형태
  • 도커 hub에서 pull 받아 사용

특징

  • 각 요소들이 설치된 형태를 이미지란 형태로 박제해서 저장
  • 이미지로 저장된 항목들이 함께 연결되서 동작하도록 설정된 상태를 명령어 텍스트 또는 문서로 저장 가능
  • 문서만 있으면 지정된 요소들이 언제든 미리 지정된 서비스에 필요한 설정대로 도커허브로부터 다운받아짐
  • 다운받아진 이미지를 컨테이너라는 독립된 가상 공간을 만들어내서 복원

가상 환경과 도커의 차이

  • 가상컴퓨팅은 한 물리적 컴퓨터 안에 각각 OS를 가동하는 가상 컴퓨터들이 물리적 자원을 분할해서 사용
    → 성능에 한계 有

  • 도커는 실행 환경만 독립적으로 돌려 컴퓨터에 직접 요소들을 설치한 것과 별 차이없는 성능을 냄
    → 가상 컴퓨팅보다 빠르게 각각의 요소를 설치하여 실행하고 연동할 수 있음

도커 실행 과정

  1. docker hub에서 이미지 pull (docker pull [options] name)
  2. 이미지를 실행(run)하면 이미지가 컨테이너가 됨 (docker run [options] IMAGE)
  3. 컨테이너가 실행되며 안에 포함되어 있는 프로그램이 실행

도커 이미지 만들기

이미지 만드는 방식

  1. 사용하고 있는 컨테이너를 대상으로 커밋이라는 명령어를 실행
    • 커밋 명령어에 의해 컨테이너가 이미지가 된다.
    • 이미 사용하고 있는 컨테이너가 있는 경우에 사용(백업 느낌)
  2. 도커 파일 작성
    • 도커 파일을 통해 만들고 싶은 이미지를 구체적으로 시간의 순서를 따라 기록하는 것
    • 이미지 생성의 느낌

homebdy
homebdy 개발에 이제 막 발 담근 사람. 개발에 이제 막 발 담근 사람. 개발에 이제 막 발 담근 사람. 개발에 이제 막 발 담근 사람.
comments powered by Disqus