안녕하세요, 쯀리입니다.
오늘은 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
설치 끝..
다음과 같은 엄청난 간편함 때문에 도커를 사용할 수 있습니다.
이미지와 컨테이너
이미지 : 코드, 런타임, 시스템도구, 시스템 라이브러리 및 설정과 같은 응용프로그램을 실행하는데 필요한 모든 것을 포함하는 소프트웨어 패키지
컨테이너 : 이미지를 실행한 상태로, 응용 프로그램을 종속성과 함께 응용프로그램 자체를 패키징 또는 캡슐화 하여 격리된 공간에서 프로세스를 동작하는 기술
오늘은 도커의 특징과 왜 도커를 사용하는지에 대해 간단히 알아보았습니다.
다음 시간에는 이미지로 컨테이너를 만들어보겠습니다.
참조
'IT 잡지식 > DevOps' 카테고리의 다른 글
[Docker] Docker Compose (0) | 2023.09.06 |
---|---|
[Docker] 도커 이미지 생성해보기 (0) | 2023.09.05 |
[Docker] 도커의 기본적인 명령어 (0) | 2023.09.03 |
[Docker]가상화 기술전~Docker 출현 까지 (0) | 2023.08.31 |
[Ubuntu] Ubuntu 설치 및 Docker 설치 (0) | 2023.08.31 |