본문 바로가기
IT 잡지식/DevOps

[Docker] Docker 기본

by 쯀리♥️ 2023. 8. 31.

 

안녕하세요, 쯀리입니다.

오늘은 Docker란 무엇이고 그 특징들에 대해서 알아보겠습니다.

 

 


 

Docker란?

도커를 왜 사용할까요?

 

복잡한 서버 관리뿐만 아니라 설치 문제, 인프라 변경, 서버 변경, 언어의 다양성.. 등등

개발환경이 항상 동일할 수는 없을텐데요..

다양한 사람들이 사용하는데 관리가 안되면 힘들 것입니다.

이렇기에 우리는 도커를 사용합니다 .

 

도커는 컨테이너 기반의 오픈소스 가상화 플랫폼입니다.

 

컨테이너가 무엇인데? 

 

일반적으로 우린 컨테이너를 물건을 넣고 쉽게 운송 수단으로 옮길 수 있는 것으로 알고있는데요

 

 

 

그렇다면 서버에서 컨테이너란 무엇일까요?

 

컨테이너 안에 다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여

프로그램의 배포 및 관리를 단순하게 해 줍니다.

일반 컨테이너의 개념에서 물건을 손쉽게 운송해주는 것처럼 프로그램을 손쉽게 이동 배포 관리를 할 수 있게 해 줍니다

 

도커의 특징

도커의 특징으로는  컨테이너를 격리 시켜서 사용한다는 특징이 있습니다.

 

도커 컨테이너를 격리 시킨다는게 무슨뜻일까 ?

먼저 리눅스에서 쓰이는 Cgroup(control groups)네임스페이스(namespaces)에 대해서 알아야 합니다.

 

C group이란?

CPU, 메모리, Network Bandwith, HD i/o 등 프로세스 그룹의 시스템 리소스 사용량을 관리하는것

ex) 특정 어플리케이션이 사용량이 많다면, 어플리케이션을 C group에서 CPU와 메모리 사용을 제한 할 수 있습니다.

 

Namespace란?

격리된 환경을 제공하는 경량 프로세스 가상화 기술

 

C group과 Namespace를 어떻게 도커가 이 특징을 가지느냐?

 

설치한 도커를 살펴볼게요. 

docker version

기본 OS가 리눅스인 것을 확인할 수 있습니다.


도커는 설치가 쉽다?

도커 없이 Redis를 설치해보자

기본적으로 우린 다음과같은 과정을 겪습니다. 

홈페이지에 들어간다 -> 다운을 받는다 -> 설치를 한다 -> .... 상황에따라 다양한 환경에서 어떤 에러가 발생할 지 모른다..

 

도커로 Redis를 설치해보자

docker run -it redis

설치 끝..

 

다음과 같은 엄청난 간편함 때문에 도커를 사용할 수 있습니다. 

 

 


이미지와 컨테이너

이미지 :  코드, 런타임, 시스템도구, 시스템 라이브러리 및 설정과 같은 응용프로그램을 실행하는데 필요한 모든 것을 포함하는 소프트웨어 패키지

 

컨테이너 : 이미지를 실행한 상태로, 응용 프로그램을 종속성과 함께 응용프로그램 자체를 패키징 또는 캡슐화 하여 격리된 공간에서 프로세스를 동작하는 기술

 

 

 


오늘은 도커의 특징과 왜 도커를 사용하는지에 대해 간단히 알아보았습니다. 

다음 시간에는 이미지로 컨테이너를 만들어보겠습니다. 

 

 


참조

따라하며 배우는 도커와 CI 환경