초보자가 이해하기 어려운 일을 총결하다

3586 단어 Docker초학자

개시하다


회사에서 정기적으로 Docker 독서회를 열다.
많은 초보자의 독서회에서 자신이 이해하기 어려운 일을 기술하였다.
여기에 다음과 같은 사항을 기술하다.
  • 컨테이너 가상화
  • Docker 이미지
  • 용기의 생명주기
  • 컨테이너 가상화 정보


    책에 실린 용기형 가상화 기술에 대한 설명에서는 호스트형 가상화 기술과 함께 많이 활용되는 느낌이다.
    독서회에서 가상화 기술에 대한 간단한 인상이 전혀 없다면 설명이라고 해도 이해가 안 될 때가 있다.
    따라서 가상화 기술, 호스트형 가상화 기술을 간략하게 묘사한 다음에 용기 가상화 기술을 설명할 것이다.

    가상화된 이미지


    가상화란 한 대의 물리적 서버(또는 PC)에서 다른 서버를 실행하는 것처럼 하는 것을 말한다.
    기본적으로 컴퓨터 한 대에 운영체제가 하나밖에 없다.가상화 기술을 사용하면 한 대의 PC에서 여러 OS를 실행할 수 있고 이 OS에서도 애플리케이션을 실행할 수 있습니다.
    물리적 서버의 OS는 호스트 OS, 가상화 기술을 사용하는 OS는 고객 OS라고 합니다.
    가상화 기술로 제작된 환경을 가상 환경이라고 하는데 가상 환경은 논리적으로 구분되어 환경이 격리된 것처럼 보인다.
    문외한은 가상환경과의 소통을 확인하고 통신·네트워크를 고려할 때 가상환경이 계속 격리돼 있다는 사실을 인지하지 못하면 독서회에 빠지는 일이 많다.

    호스트 가상화 기술


    호스트 서버 가상화 기술은 호스트 OS에 가상화 소프트웨어를 설치하고 가상화 소프트웨어에서 고객 OS를 실행하는 기술을 말한다.
    가상화 소프트웨어로는 Oracle VM VirtualBox, Vmware Workstation Player 등이 있습니다.
    구성은 다음 그림과 같습니다.

    컨테이너형 가상화 기술 정보


    우선 컨테이너는 무엇입니까?프로그래머를 위한 Docker 교과서 2판에서 인용
    컨테이너는 호스트 OS에 논리적 구획을 만들어 응용 프로그램 동작에 필요한 프로그램 라이브러리와 응용 프로그램 등을 한데 모아 개별 서버처럼 사용할 수 있도록 하는 컨테이너다.
    단지 이 설명만으로는 컨테이너를 이해할 수 없지만'Docker/Kubernetes 실천 컨테이너 개발 입문'에는 다음과 같은 설명이 있다.
    "컨테이너는 Docker가 만든 고객 OS입니다."
    이렇게 이해하면 더 쉽게 이해할 수 있을 거예요.
    호스트형이든 컨테이너형이든 호스트 OS와 격리된 가상 환경을 구축한다는 점을 초보자들이 빠르게 이해하기 위해서도 마찬가지다.
    초보자에게 호스트형 가상화와 용기형 가상화는 큰 차이가 있는데 나는 경량, 고속의 시작, 정지가 가능하다고 생각한다.
    컨테이너를 사용하는 가상화 시스템은 호스트형에 비해 환경 구축이 뚜렷하게 원활하고 간단한 조작을 통해 운행 환경을 시작할 수 있다.
    컨테이너 가상화의 구성은 다음 그림과 같습니다.

    Docker 작업 정보


    독서회에서 Docker에 대한 작업(이미지 제작~용기 폐기까지)은 초기에 처리됐지만 조작에 대해서는 이해하기 어렵다는 말이 나왔다.
    깊이 파고든 후에 우리는 Docker의 이미지, 용기의 생명주기에 대한 이해가 매우 얕다는 것을 발견했다.
    이 섹션에서는 Docker 작업을 처음 배우는 사람이나 작업에 대한 이해가 깊지 않은 사람이 이미지, 컨테이너의 라이프 사이클을 이해할 필요가 있음을 설명합니다.

    Docker 이미지 정보


    먼저 인용부터 시작한다.
    '프로그래머를 위한 Docker 교과서 2판'에는 다음과 같은 설명이 있다.
    Docker는 응용 프로그램 실행에 필요한 프로그램 주체/프로그램 라이브러리, 중간부품, OS와 네트워크 설정 등을 한데 모아 Docker 이미지를 만든다.Docker 이미지는 실행 환경에서 실행되는 컨테이너의 원형입니다.Docker는 한 이미지에 한 프로그램만 넣고 여러 용기를 조합해서 서비스를 구축하는 것을 권장합니다.
    또한'Docker/Kubernetes 실천 컨테이너 개발 입문'에서 Docker 이미지와 Docker 용기의 역할에 대해 간략하게 설명했다.
    Docker 이미지: Docker 컨테이너를 구성하는 파일 시스템과 실행되는 응용 프로그램 및 설정을 취합하여 컨테이너를 만드는 데 사용되는 활용 템플릿이 됩니다.
    Docker 컨테이너: Docker 이미지를 기반으로 제작된 파일 시스템과 응용이 실행된 상태입니다.
    Docker를 사용한 응용프로그램(컨테이너)을 실행하기 전에 수행에 필요한 리소스(파일 시스템, 쓰기 등)를 수집한 템플릿입니다.
    '이미지라는 템플릿을 만들면 애플리케이션이 그대로 실행된다'는 걸 깨닫게 되면 이해하기 쉽잖아요.

    컨테이너의 생명주기


    컨테이너의 생명주기(상태 이동)는 아래 그림과 같다.

    docker run 용기 생성 및 시동 명령
    Docker 이미지를 만든 후 컨테이너를 생성하거나 시작할 수 있습니다.용기의 생성과 작동의 큰 차이는 용기의 어떤 과정이 실행되는지 여부에 있다.
    컨테이너의 생명주기를 이해하면 컨테이너의 간단한 조작을 연상하기 쉽다.

    참고 문헌

  • 프로그래머를 위한 Docker 교과서 2판 기초지식 & 코드 환경 구축 자동화
  • 실천 컨테이너 개발 입문
  • 좋은 웹페이지 즐겨찾기