본문으로 바로가기

Docker의 기본 개념

category Docker 2025. 5. 29. 19:13

Docker는 왜 배울까?

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

 

버전, 운영 체제 등으로 프로그램이 정상적으로 설치가 안되는 경우가 있다.

Docker를 사용하면 

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

본격적으로 Docker에 대해 학습하기 전 IP와 Port의 개념에 대해 알고 넘어가자.

IP : 네트워크 상에서 특정 컴퓨터를 가리키는 주소 

 

예를 들어, 우리가 알고 있는 naver.com이라는 서비스가 DSN을 통해 반환 받는 값이 있다.

여기서 61.41.153.2, 이를 네이버가 운영하고 있는 IP 주소라고 한다.

브라우저는 기본적으로 80번 포트로 통신을 보낸다.

Port : 한 컴퓨터 내에서 실행되고 있는 특정 프로그램의 주소

 

개발을 하며 해당 파일을 내 로컬 환경에서 실행시키면 localhost:3000, localhost:5173 이런 식으로 : 뒤에 숫자가 부여되는 것을 볼 수 있다. 이는 포트 번호를 의미한다. 내 컴퓨터에서 실행되고 있는 프로그램들은 모두 각각의 포트 번호를 갖고있다.

포트 번호는 0 ~ 65,535번까지 사용할 수 있다. 그 중에서 0 ~ 1023번까지의 포트 번호는 주요 통신을 위한 규약에 따라 이미 정해져 있는데, 이를 well-known port라고 부른다.

 

그렇다면 외부에서 특정 컴퓨터 내부에 있는 서버에 통신을 하고 싶다면 어떻게 해야할까?

특정 서버와 통신을 하기 위해서는 IP 주소와 서버가 실행되고 있는 포트 번호까지 알고 있어야 한다.

 

이제 본격적으로 Docker에 대해 알아보자.

Docker란?

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

 

그렇다면 여기서 컨테이너(Container)는 무엇일까?

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

zustand를 예로 들면, 여러 개의 store를 독립적으로 관리한다고 보면 될 것 같다.

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

이러한 컨테이너를 포함하고 있는 컴퓨터를 '호스트(host) 컴퓨터'라고 한다.

 

또 하나의 중요한 개념인 이미지(Image)는 무엇일까?

프로그램을 실행하는 데 필요한 설치 과정, 설정, 버전 정보 등을 포함하고 있는 것을 이미지라고 한다.

이미지를 컨테이너에서 실행시킨다고 보면 된다.

 

다음으로 Dokcer를 실행해보자.