
Docker란?
Docker는 컨테이너(Container)를 사용하여 각각의 프로그램을 분리된 환경에서 실행 및 관리할 수 있는 툴이다.
Container란?
컨테이너는 하나의 컴퓨터 환경 내에서 독립적인 컴퓨터 환경을 구성해서, 각 환경에 프로그램을 별도로 설치할 수 있게 만든 개념이다. 하나의 컴퓨터 환경 내에서 여러개의 미니 컴퓨터 환경을 구성할 수 있는 형태이다. 여기서 얘기하는 미니 컴퓨터를 보고 Docker에서는 컨테이너(Container)라고 부른다.

컨테이너를 포함하고 있는 실제 컴퓨터를 호스트 컴퓨터라고 구분하여 부른다.
컨테이너의 독립성
위의 설명에서 컨테이너는 독립적인 컴퓨터 환경이라고 얘기했다. 구체적으로 어떤 것들이 독립적으로 관리되는지 기억해두자.
- 디스크 (저장 공간) : 각 컨테이너마다 서로 각자의 저장 공간을 가지고 있다. 일반적으로 A 컨테이너 내부에서 B 컨테이너 내부에 있는 파일에 접근할 수 없다.
- 네트워크 (IP, Port) : 각 컨테이너는 고유한 네트워크 환경을 가지며, 독립적인 IP 주소를 가진다. 따라서 컨테이너 간 통신은 설정된 네트워크를 통해 이루어진다.
Image란?
닌텐도와 같은 게임기를 보면 여러가지 칩을 꽂아서 다양한 게임을 즐길 수 있게 되어 있다. Docker에서는 닌텐도의 칩과 같은 역할을 하는 개념이 이미지(Image)이다.
예를 들어, Java 기반의 Spring 애플리케이션을 Docker 이미지로 만들었다고 가정해보자. 이 이미지를 Docker에서 실행하면 Spring 애플리케이션이 컨테이너 환경에서 동작하게 된다. 복잡한 설치 과정을 거칠 필요 없이 이미지를 실행하는 것만으로 간단히 애플리케이션을 실행할 수 있다.
또 다른 예로, MySQL 서버를 이미지로 만들었다면, 이 이미지를 Docker로 실행시키는 순간 MySQL 서버가 컨테이너(Container) 환경에서 실행된다. MySQL을 일일이 설치할 필요없이 MySQL 데이터베이스를 사용할 수 있게 된다.
이미지(Image)는 프로그램을 실행하는 데 필요한 설치 과정, 설정, 버전 정보 등을 포함하고 있다. 즉, 프로그램을 실행하는 데 필요한 모든 것을 포함하고 있다.
'Back-End > Docker' 카테고리의 다른 글
| Docker Volume (0) | 2025.01.27 |
|---|---|
| 현업에서 자주 사용하는 Docker CLI (컨테이너 편) (0) | 2025.01.26 |
| 현업에서 자주 사용하는 Docker CLI (이미지 편) (0) | 2025.01.25 |
| Docker의 전체 흐름(Nginx 설치 및 실행) (0) | 2025.01.25 |
| Docker는 왜 쓸까? (0) | 2025.01.25 |