[Docker] Docker

조치연·2026년 8월 5일

Docker

목록 보기
2/6

Docker


Docker란, 컨테이너를 사용해서 각각의 프로그램을 분리된 환경에서 실행 및 관리할 수 있는 툴이다.

컨테이너를 관리할 수 있는 툴이라고 이해하면 쉬울 것 같다.
사실상 Docker의 본체는 컨테이너라고 해야할까..?


Container


Container란, 애플리케이션의 코드와 실행을 위한 모든 것을 묶어 하나의 운영체제 위에서 독립적으로 실행하는 가상화 단위다.

하나의 컴퓨터에서 여러개의 미니컴퓨터가 존재하면 여러개의 미니컴퓨터는 컨테이너라고 부를 수 있다.

이때, 컨테이너는 여러개의 미니컴퓨터와 본체 컴퓨터로 구성되는데 각각 컨테이너와 호스트 컴퓨터라고 부른다.

컨테이너는 어떤 애플리케이션을 독립적으로 실행하는 가상화 단위라고 했다.

즉, 컨테이너는 아래와 같이 두 가지 특성을 가진다.

  • 독립성
    서로 다른 컨테이너끼리 영향을 미치지 않는다.

  • 이식성
    다른 컴퓨터에 해당 컨테이너를 넣어도 동작한다.


Image


Image란, 컨테이너를 실행하는 것에 필요한 모든 것을 담은 읽기 전용 템플릿이다.

앞서 컨테이너는 가상화 단위라고 했다.
컨테이너는 그 공간을 의미하고 이미지는 그 공간을 어떻게 활용할지를 담은 실행 문서로 볼 수 있겠다.

조금 더 직관적으로 생각해보면, 닌텐도를 예시로 들어볼 수 있겠다.

우리는 닌텐도 가방과 닌텐도 여러개 그리고 닌텐도 칩이 다수 있다.
이때, 각각은 다음과 같이 매칭된다.

* 컴퓨터 -> 닌텐도 가방

* 컨테이너 -> 닌텐도

* 이미지 -> 닌텐도 칩

칩을 넣으면 각 닌텐도는 어떤 칩이 들어와도 작동된다.
왜냐하면, 칩에 애플리케이션을 실행하는 모든 명령이 들어가있기 때문이다.

하나의 닌텐도가 고장나도 다른 닌텐도는 실행가능하다.
왜냐하면, 서로 독립적인 컨테이너이기 때문이다.

모든 닌텐도는 닌텐도 가방에서 보관한다.
왜냐하면, 닌텐도는 모두 닌텐도 가방 소속이기 때문이다.


Reference


Docker 입문/실전

profile
세종대학교 지능기전공학과 23

0개의 댓글