도커란?

Siwoo Pak·2021년 9월 17일
0

Docker

목록 보기
2/10

Docker란?

  • 도커는 리눅스 컨테이너 기술을 기반으로 하는 오픈 소스 서비스
  • 도커를 통해 앱 실행환경을 코드로 작성할 수 있으며, OS를 격리화하여 관리함

리눅스 컨테이너란?

  • 컨테이너 방식으로 애플리케이션을 실행한다
  • 리눅스 기반의 기술 중 하나
  • 필요한 라이브러리와 애플리케이션을 모아서 마치 별도의 서버처럼 구성한 것
  • 컨테이너를 이루는 네틍워크설정, 환경 변수 등의 시스템 자원은
    각 컨테이너가 독립적으로 소유하고 있음
  • 컨테이너 방식의 장점
    • 의존성 충돌 문제 해결
    • 개발과 배포 환경의 일치
    • 수평 확장을 쉽게 해줌
    • 각 서버에 새로운 내용을 배포하기 쉽게 만들어 줌
  • 구획화
    • 프로세스의 구획화
      • 특정 컨테이너에서 작동하는 프로세스는 기본적으로 그 컨테이너에서만 액세스할 수 있음
      • 컨테이너 안에서 실행되는 프로세스는 다른 컨테이너의 프로세스에게 영향을 줄 수 없음
    • 네트워크 구획화

      기본으로 컨테이너 하나에 IP주소가 할당되어 있음

    • 파일 시스템의 구획화

      컨테이너 안에서 사용되는 파일 시스템은 구획화되어 있음. 그래서 해당 컨테이너에서의 명령이나 파일 등의 액세를 제한할 수 있음

  • 가상머신과 리눅스 컨테이너의 차이점
    • 도커는 가상 머신만큼 견고한 격리성을 제공하지 않음
    • 도커는 리눅스의 컨테이너를 이용한 기술로, OS위에 다른 OS를 실행하는 것이 아니므로 가상 머신보다 좋은 성능을 낼 수 있음
    • 앱에 대한 환경 격리성을 중심을 한 VM과는 달리, 도커는 컨테이너의 관점에서 개발자와 사용자 커뮤니티를 중심으로 혜택을 제공하는 데 있음.

도커는 어떤 문제를 해결할 수 있나?

  • 환경 표준화
  • 수작업으로 일치시키는 환경 구성
  • 리소스 격리성

도커 컨테이너 라이프 사이클

도커 키워드

  • 컨테이너

    애플리케이션 의존성, 네트워크 환경, 파일 시스템에 구애받지 않고, 도커라는 기술위에 실행될 수 있도록 만든 애플리케이션 상자

  • 이미지

    실행되는 모든 컨테이너는 이미지로부터 생성됨.
    이미지는 앱 및 앱 구성을 함께 담아놓은 템플릿으로, 이를 이용해 즉시 하나 혹은 여러 개의 컨테이너를 생성할 수 있음.
    이미지는 기본 이미지로부터 깃처럼 변경사항을 추가/커밋해서 또 다른 이미지로 만들 수도 있음.

  • 레지스트리

    이미지는 레지스트리에 저장됨. 대표적인 이미지 레지스트리로는 Docker Hub, Amazon ECR이 있음.
    도커 CLI에서 이미지를 이용해 컨테이너를 생성할 때, 호스트 컴퓨터에 이미지가 존재하지 않는다면, 기본 레지스트리로부터 다운로드 받게 됨.

profile
'하루를 참고 인내하면 열흘을 벌 수 있고 사흘을 참고 견디면 30일을, 30일을 견디면 3년을 벌 수 있다.'

0개의 댓글