Notice
Recent Posts
Recent Comments
Link
관리 메뉴

look-forest

Docker 기본 개념 본문

Infra/Docker

Docker 기본 개념

studyHub 2025. 8. 14. 17:46

Docker를 쓰는 이유

컴퓨팅 환경이 달라도 명령어 한 줄로 어떤 컴퓨터에는 프로그램을 에러 없이 설치하고 실행할 수 있게 한다.

이식성 : 특정 프로그램을 다른 곳으로 쉽게 옮겨서 설치 및 실행할 수 있는 특성

 

뿐만 아니라 Docker를 사용하면 아래와 같은 장점이 있다.

  • 매번 귀찮은 설치 과정을 일일이 거치지 않아도 된다.
  • 항상 일관되게 프로그램을 설치할 수 있다. (버전, 환경 설정, 옵션, 운영 체제 등)
  • 각 프로그램이 독립적인 환경에서 실행되기 때문에 프로그램 간에 서로 충돌이 일어나지 않는다.

 

Docker(관리툴), Container(소형컴퓨터), Image(청사진)

Docker란 ?

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

 

컨테이너(Container)란?

호스트 컴퓨터 내에서 독립적으로 격리된 소형 컴퓨팅 환경.

 

하나의 컴퓨터 환경 내에서 독립적인 컴퓨터 환경을 구성해서, 각 환경에 프로그램을 별도로 설치할 수 있게 만든 개념.

즉, 하나의 컴퓨터 환경 내에서 여러개의 미니 컴퓨터 환경을 구성할 수 있는 형태이다.

여기서 얘기하는 미니 컴퓨터를 보고 Docker에서는 컨테이너(Container)라고 부른다.

여기서 ‘ 컨테이너 ’와 ‘ 컨테이너를 포함하고 있는 컴퓨터 ’를 구분하기 위해 컨테이너를 포함하고 있는 컴퓨터를 ‘ 호스트(host) 컴퓨터 ’라고 부른다.

 

컨테이너(Container)의 독립성

컨테이너는 ‘독립적인 컴퓨터 환경’이라고 얘기했다. 구체적으로 디스크와 네트워크가 독립적으로 관리된다.

  • 디스크 (저장 공간) : 각 컨테이너마다 서로 각자의 저장 공간을 가지고 있다. 일반적으로 A 컨테이너 내부에서 B 컨테이너 내부에 있는 파일에 접근할 수 없다.
  • 네트워크 (IP, Port) : 각 컨테이너마다 고유의 네트워크를 가지고 있다. 컨테이너는 각자의 IP 주소를 가지고 있다.

 

이미지(Image)란?

컨테이너를 생성하고 실행하는 데 필요한 모든 것(코드, 설정, 환경 등)을 포함하는 읽기 전용 템플릿.

이미지는 컨테이너를 만들기 위한 '설계도' 또는 '청사진'으로, 프로그램을 실행하는 데 필요한 모든 구성 요소가 담겨있다.

닌텐도와 같은 게임기를 보면 여러가지 칩을 꽂아서 다양한 게임을 즐길 수 있게 되어 있다. Docker에서는 닌텐도의 칩과 같은 역할을 하는 개념이 이미지(Image)이다.

 

이미지(Image)프로그램을 실행하는 데 필요한 설치 과정, 설정, 버전 정보 등을 포함하고 있다. 즉, 프로그램을 실행하는 데 필요한 모든 것을 포함하고 있다. 그리고 각 프로그램을 독립적인 컨테이너 환경에 이미지로 패키징하여 실행한다.

이미지를 바탕으로 컨테이너를 생성한 뒤, 컨테이너를 실행시키는 것이다.

 

도커는 프로그램을 이미지로 만들어 필요한 모든 것을 포함하고, 이를 독립된 컨테이너에서 실행하여 환경에 따른 차이 없이 일관성을 유지하는 것이다.

 



참고 자료 & 이미지 출처
비전공자도 이해할 수 있는 Docker 입문·실전