본문 바로가기
인프라/Docker&K8S

도커(docker)란 무엇인가? 도커의 정의

by IT맥구리나스 2022. 2. 20.

 

도커(docker)란 무엇입니까?

도커란 컨테이너 기반의 가상화 플랫폼이다. chroot, cgroup  네임스페이스와 같은 리눅스 커널의 기능을 사용하여 프로세스를 분리함으로써 독립적으로 실행될 수 있도록 한다.

 

chroot(독립된 공간)

- 새로운 가상 루트 디랙토리를 생성하여 원격서비스로 접속할 경우 상위로 이동이 불가능하게 하는 명령어

name space(독립된 환경)

- 데이터에 이름을 붙여 충돌 가능성을 줄이고 쉽게 참조할 수 있게 하는 개념

- 6개의 독립된 환경을 제공한다

- PID / Network/ UID / Mount / UTS / IPC

cgroup(독립된 자원)

- 프로세스들이 사용할 수 있는 컴퓨터 자원들(CPU/Memory/Network/Device/IO)을 제한하고 격리 시킬 수 있는 기능

 

 

도커(docker)를 왜 사용해야하나?

 

1. 소프트웨어 운영 플랫폼이 변화 되고 있다.

 과거 깡통서버에 OS를 설치하고 프로그램 및 라이브러리르 설치하고 각종 환경설정을 세팅했다.그러다 가상화 OS를 설치하고 그위에 vm을 올려 필요한수만큼 OS를 설치하고 어플리케이션을 설치했다.이제는 Host server에 OS를 올리고 docker엔진을 설치하여 그위에 컨테이너을 구동시켜 어플리케이션을 구동시키는 추세이다.

2. 어플리케이션이 개발/운영환경에 구애받지 않는다.

 기존에 시스템에 어플리케이션을 적용하려면 서버를 구입하고, OS를 설치하고, 계정설정을 하고, 각종 RPM과 라이브러리, 환경설정등을 일일히 해줘야하는 번거로움이 있었다.

 하지만 도커를 사용한다면 개발자가 어플리케이션과 그에 필요한 환경설정, 라이브러리를 함께 묶어 컨테이너이미지로 빌드하고 시스템엔지니어에게 전달하면, 시스템엔지니어는 그대로 운영서버에 컨테이너 이미지를 가지고 컨테이너를 생성 및 구동시키면, 전통적으로 진행했던 서버구축에 필요한 작업을 줄일 수 있다.

 

 

도커(docker) 장점

 

견고성

잘 작동하는 이미지를 만들어두면 시간이 오래 지나도 어디서든 동작이 잘되는 것을 보장한다.

 

유연성

컨테이너 이미지를 실행할때 옵션을 다르게 입력하여 실행모드나 API 등의 주소를 쉽게 변경 가능하다.

 

확장성

컨테이너 추가 삭제가 쉽다.

 

 

 

도커(docker)에 사용되는 용어

 

도커

컨테이너 기반의 가상화 플랫폼

 

컨테이너 이미지

어플리케이션과 어플리케이션을 실행하는데 필요한 dependencies, 환경설정을 담은 패키지의 현재 상태

컨테이너 이미지를 쉽게 설명하면 프로파일과 같다. 더쉽게 말하면 2020년식 소나타 DN8을 캡슐에 담았다고 해야할까?

이 이미지를 2020년에 사용하거나 2030년에 사용하거나 똑같은 020년식 소나타 DN8이 나올 것이다.

 

도커파일

컨테이너 이미지를 빌드하기 위한 사전설정파일, 도커파일내 설정내용을 기반으로 컨테이너 이미지를 만들 수 있다.

 

컨테이너

어플리케이션과 어플리케이션을 실행하는데 필요한 dependencies, 환경설정을 담은 패키지

 

레지스트리

컨테이너 이미지파일을 저장하는 저장소로 docker hub처럼 인터넷연결만 되면 어디든 접근할 수있는 public 레지스트리 와 기업 내부에서 사용할 수있는 private 레지스트리가 있다.

 

 

 

도커 컨테이더 라이프 사이클

 

도커파일 생성 > 컨테이너 이미지 빌드(생성) > 컨테이너 생성 > 컨테이너 프로세스 구동 > 컨테이너 프로세스 중단 > 컨테이너 삭제 > 컨테이너 이미지 삭제

 

 

 

 

반응형

댓글