본문 바로가기
IT지식/Web, Server

[Web] Docker에 대해 공부해보자

by five-sun 2023. 1. 3.
728x90

Docker란?

도커는 리눅스 컨테이너 기술을 기반으로 하는 오프 소스 서비스이다.

도커를 통해 애플리케이션 실행 환경을 코드로 작성할 수 있다.

도커를 통해 OS를 공유, 격리화하여 관리할 수 있다.

 

쉽게 말해 도커는 다양한 프로그램들과 실행환경을 컨테이너로 규격화시켜 프로그램의 배포와 관리를 단순화할 수 있게 도와주는 기술이다.

 

리눅스 컨테이너란?

리눅스 컨테이너는 Linux 기반의 기술 중 하나이다.

필요한 라이브러리와 애플리케이션을 모아서 마치 별도의 서버처럼 구성한 것을 말한다.

컨테이너를 이루는 네트워크 설정, 환경 변수 등의 시스템 자원은 각 컨테이너가 독립적으로 소유하고 있다.

 

리눅스 컨테이너의 기술들은 다음과 같다.

 

프로세스의 구획화?

특정 컨테이너에서 작동하는 프로세스는 기본적으로 그 컨테이너 안에서만 액세스할 수 있다.

컨테이너 안에서 실행되는 프로세스는 다른 컨테이너의 프로세스에게 영향을 줄 수 없다.

 

네트워크의 구획화?

기본으로 컨테이너 하나에 IP주소가 할당되어 있다.

하나의 컴퓨터가 하나의 IP 주소를 갖는 것을 극복한다.

 

파일 시스템의 구획화?

컨테이너 안에서 사용되는 파일 시스템은 구획화되어 있어서 해당 컨테이너에서의 명령이나 파일 등의 액세스를 제한할 수 있다.

 

컨테이너는 무엇을 공유하고 무엇을 격리할까?

CPU 성능, 메모리, 리눅스 커널 등을 공유하고 네트워크, 파일, 프로세스를 격리한다.

 

컨테이너 기술을 통해서 생산성을 향상시킬 수 있다.

 

도커의 장점?

개발/실행 환경이 달라도 컨테이너로 규격화한 도커 컨테이너들이 도커 엔진 위에서 실행되기 때문에 도커가 설치되어 있는 곳이라면 실행환경에 상관없이 모든 환경에서 동일하게 작동할 수 있다.

 

가상머신과의 차이점?

여러 컨테이너들이 똑같은 하나의 머신 위에서 OS 커널을 공유하기 때문에 작은 크기를 차지한다. 가벼운 가상 머신을 사용하는 것과 같은 느낌을 준다. 하지만 가상머신은 하나의 머신에서 여러 개의 OS로 나누어 점유하게 된다. 따라서 매우 큰 크기를 차지하게 된다. 성능상에 있어 컨테이너가 좀 더 유리하다.

 

추후 추가로 공부하면서 더 기록해야겠다.

 

728x90