Always Be Wise

나만의 무기를 갖기 : 도커(Docker) 개념 정리(1) 본문

카이스트 정글 - 프로젝트/나만의 무기를 갖기

나만의 무기를 갖기 : 도커(Docker) 개념 정리(1)

bewisesh91 2022. 2. 23. 03:52
728x90

도커 설치

1. 도커 사이트 이동

2. Get Started 클릭

3. Docker Desktop → Download for Mac 클릭(사양에 맞게) → 설치하기

4. Docker 회원가입

5. Docker 클릭 → Sign in / Create Docker ID → Sign in

6. 터미널 실행 → docker version 입력

도커란 무엇인가?

도커란 컨테이너 기반의 오픈소스 가상화 플랫폼이자 생태계이다. 다양한 프로그램, 실행환경을 컨테이너 안에 추상화하여 동일한

인터페이스를 제공함으로써 응용프로그램을 더 쉽게 만들고, 배포하고, 실행할 수 있도록 설계된 도구이다.

도커 이미지와 컨테이너 (feat. 도커 컨테이너란?)

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

독립적이며 실행 가능한 소프트웨어 패키지이다. 컨테이너는 응용 프로그램 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 빠르고 안정적으로

실행되도록 하는 소프트웨어의 표준 단위이다. 컨테이너는 코드와 모든 종속성을 패키지화하여, 소프트웨어를 환경으로부터 격리시키고

개발과 스테이징의 차이에도 불구하고 균일하게 작동하도록 보장한다.

도커 이미지는 프로그램을 실행하는데 필요한 설정이나 종속성을 갖고 있으며, 이미지를 이용해서 도커 컨테이너를 생성하며 컨테이너를

이용하여 프로그램을 실행한다. 즉, 이미지는 응용 프로그램을 실행하는데 필요한 모든 것을 포함하고 있다. 이때 필요한 것이란 컨테이너가

시작될 때 실행되는 명령어와 파일의 스냅샷을 의미한다.

도커와 기존 가상화 기술의 차이

도커에서 돌아가는 컨테이너의 응용 프로그램들은 사용자 공간에서 격리된 프로세스로 실행되지만, 같은 호스트의 다른 프로그램들과

동일한 커널을 공유한다. 반면 가상 머신의 경우 각각의 응용 프로그램이 게스트 운영 체제에서 실행되며 실행되는 모든 것이 하이퍼바이저

(호스트 운영 체제)와 독립되어 있다.

도커 컨테이너 격리 기술

Cgroup(Control Group)

CPU, Memory, Network Bandwith, HD I/O 등 프로세스 그룹의 시스템 리소스 사용량을 관리하는 기술로 어떤 응용 프로그램의

리소스 사용량이 너무 많다면 Cgroup에 넣어 그 사용량을 제한할 수 있다.

 

네임 스페이스(Namespaces)

하나의 시스템에서 프로세스를 격리시킬 수 있는 가상화 기술로, 별개의 독립된 공간을 사용하는 것처럼 격리된 환경을 제공하는 경량

프로세스 가상화 기술이다.

도커 실행 흐름

1. 도커 클라이언트(CLI)에 명령어를 입력하여 도커 서버로 요청을 보냄

2. 도커 서버에서 명령어에 해당하는 이미지가 로컬에 캐쉬되어 있는지 확인

3. 캐쉬에 없다면 도커 허브에서 해당 이미지를 가져와 로컬에 캐쉬

4. 이미지를 이용하여 컨테이너를 생성

5. 생성된 컨테이너는 이미지에서 받은 설정이나 조건에 따라 프로그램을 실행

 

Comments