Docker

[Docker] Docker 기본 개념 간단정리

배씌 2025. 9. 23. 15:57

🤔 Docker 를 왜 사용하는가?

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

 

Docker 를 쓰는 이유에는 여러가지 장점이 있지만, 그 중 하나만을 꼽자면 위 장점을 꼽을 수 있다.

 

다른 컴퓨터 2대에 똑같은 방법으로 프로그램을 설치하고 있는데 이상하게 한 컴퓨터에는 계속 에러가 발생한다고 쳐보자. 다양한 이유가 있겠지만, 해당 프로그램을 설치할 때마다 에러를 찾거나 발생하지 않길 기도한다면 상당히 번거롭고 귀찮은 일이다.

 

이걸 깔끔하게 해결하기 위해 나타난 툴이 Docker이다. Docker를 사용하면 명령어 한 줄로 어떤 컴퓨터에든 프로그램을 에러 없이 설치하고 실행할 수 있게 된다.

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

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

🚢 Docker 란?

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


📦 컨테이너(Container) 란?

: 도커 이미지인스턴스. 분리된 환경에서 실행되며, 운영 체제 수준의 가상화 기술을 사용하여 프로세스를 격리합니다.

 

쉽게 말하자면,

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

 

하나의 컴퓨터 환경 내에서 여러개의 미니 컴퓨터 환경을 구성하는데, 이때 이 미니 컴퓨터를 Docker에서는 컨테이너(Container)라 한다.

 

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

 

✅ 컨테이너의 독립성

  • 디스크 (저장 공간) : 각 컨테이너마다 독립적인 저장 공간을 가짐. -> 다른 컨테이너 내부의 파일에 접근 불가
  • 네트워크 (IP, Port) : 각 컨테이너마다 고유한 IP 및 Port 를 가짐

💾 이미지(Image) 란?

: 도커 컨테이너를 실행하는 데 필요한 파일과 설정을 포함하는 가볍고 독립적인 실행 가능한 패키지

 

비유하자면, 닌텐도 칩과 같다.

 

Spring Boot 프로젝트를 이미지로 만들었다고 가정해보자. 이 이미지를 Docker 로 실행시키면 Spring Boot 프로젝트가 컨테이너(Container) 환경에서 실행된다. (별도의 설치 과정 없이 바로 실행이 가능함)

 

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