ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Docker] Docker 개념
    카테고리 없음 2021. 3. 5. 10:21

    Docker Image 

    Image 는 가상머신에서 사용하는 이미지와 비슷한 역할을 한다

    한마디로 어떤 application 을 실행하기 위한 환경을 말하며

    이 환경은 파일들의 집합으로 이루어져 있다.

     

    개발자들은 도커에서 application 을 실행하기 위한 파일들을 모아두고, application 과 함께 Image 라는 형태로 만들 수 있다. 그리고 이 Image를 기반으로 application 을 바로 배포할 수 있다.

     

    • Repository : 하나의 Image 를 뜻한다
    • Tag : 추가적인 Image의 이름으로, ubuntu:latest 에서 : 뒤에 붙은 말을 뜻한다. 주로 버전을 나타낸다

    Docker Hub

    Docker에서 제공하는 Image 호스팅 서비스다.

    Docker Hub 에는 아주 많은 Image 들이 존재하는데, 이 Image 들은 Docker 사에서 공식적으로 제공하는 Image 와 사용자들이 직접 만들어 올린 Image 로 나눠진다.

     

    이미지를 공유할 수 있는 도커 허브 서비스는 도커가 초반에 자리잡을 수 있도록 중요한 역할을 했다.

     

    Docker Container - 격리된 환경에서 실행되는 프로세스

     

    centos 컨테이너를 실행하는 것은 다음과 같은 두 단계를 거친다.

     

    1. 도커 레지스트리에서 centos 이미지를 풀 받아서 로컬로 다운로드 받는다.

    2. 이 이미지를 통해서 컨테이너를 실행한다.

     

    여기서 두번째 단계를 좀 더 자세히 다뤄보자.

    앞에서 말했듯이 이미지는 application 의 환경이 구성되어있는 파일의 집합이다.

    바로 이 환경위에서 특정한 프로세스를 격리시켜 실행한 것을 Container 라고 부른다.

     

    쉽게말하면,

    이미지는 파일들의 집합이고, 컨테이너는 이 파일들의 집합 위에서 실행된 특별한 프로세스다.

     

    이미지를 pull 하고 이 위에서 실행시킨 컨테이너에서 어떤 조작을 하던, 원래의 Image 는 변하지 않는다.

    그러나, 어떤 조작을 하고나서 새로운 Image 로 만들 수 있다.

     

    Image 는 위에서 볼 수 있듯이 Layer 가 겹겹이 쌓인 구조로 이루어져 있기때문에

    내가 nginx 라는 Image 를 pull 하고 그 위에 source 라는 layer 를 쌓아 새로운 Image ( application ) 를 만들 수 있다.

     

    그리고 이 source 가 수정된경우, web app 이라는 Image 를 통째로 다시 다운받지않고 source 라는 layer 만 다운받는 구조로 이루어져있어 굉장히 효율적인 Image 관리가 가능하다.

    댓글

Designed by Tistory.