• SEB 섹션3 - 11 TIL : Docker

    2021. 11. 2.

    by. 자율학습 코딩봇

     

     


    1. 컨테이너

    Docker를 통하여 실행에 있어서 어떠한 영향도 받지 않고 프로그램을 실행시킬 수 있게 만들어준다.

    Docker는 컨테이너 방식을 기반으로 한다.

     

    각각의 컨테이너는 독립적으로 실행 환경을 구성하여 어떠한 환경에서도 프로그램이 실행될 수 있도록 만들어준다.

    컨테이너는 다음 3가지의 자원을 독립적으로 소유한다.

    1. 프로세스

    • 특정 컨테이너에서 작동하는 프로세스는 기본적으로 그 컨테이너에서만 엑세스 할 수 있다.
    • 컨테이너 안에서 실행되는 프로세스는 다른 컨테이너의 프로세스에게 영향을 줄 수 없다.

     

    2. 네트워크

    • 기본으로 컨테이너 하나에 하나의 IP 주소가 할당된다.

     

    3. 파일 시스템

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

     

    2. 컨테이너 방식의 장점

    1. 의존성 충돌 문제를 해결해준다.

    2. 개발과 배포환경을 일치시킨다.

    3. 수평확장을 쉽게 해준다.

    4. 각 서버에 새로운 내용을 배포하기 쉽게 만들어준다.

     

    3. 도커 핵심 키워드

    컨테이너

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

     

    이미지

    실행되는 모든 컨테이너는 이미지로 생성. 이미지는 애플리케이션 및 애플리케이션 구성을 함께 담아 놓은 템플릿으로, 이를 이용해 즉 컨테이너를 만들 수 있다. 이미지를 이용해 여러 개의 컨테이너를 생성할 수 있다. 이를 이용해 애플리케이션의 수평 확장이 가능하다.

     

    이미지는 기본 이미지로 부터 변경 사항을 추가/커밋해서 또 다른 이미지를 만들 수 있다. 예를 들어 node.js로 작성된 애플리케이션을 이미지로 만들고 싶은 경우, nodejs 이미지를 기본 이미지로 삼고 내가 만든 애플리케이션을 추가해 넣고, 이미지화 할 수 있다.

     

    레지스트리

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

     

    댓글