TIL#92 Docker

Dasom·2020년 10월 15일
0

Django

목록 보기
15/34
post-thumbnail

Doker

Doker는 가상화 기술이다. 컨테이너를 가상화해서 컴퓨터 위에 격리된 공간들을 만들어 준다. -> 가상화 컨테이너에 application 배포를 자동화시켜주는 오픈소스 엔진이다. container 가상화 실행 환경 위에 application 배포 엔진을 더함으로서 사용자의 코드를 빠르고 가볍게 실행시켜준다. 한 컨테이너당 하나의 어플리케이션이나 프로세스를 실행하는 것을 권장한다.

요즘 많이 사용되는 MSA(Micro Service Architecture)와 CI/CD 와 잘 조화된다.
❗️ MSA : 소프트웨어 개발 기법 중 하나이다. 전체 어플리케이션을 특정 목적을 가진 어플리케이션 단위로 나누는 것이다. 나누어진 어플리케이션으로 독립적으로 서비스가 제공이 되어도 전혀 문제가 없는 것을 말한다. 어플리케이션을 독립적으로 배포가 가능하다.

Hypervisor & Container

Hypervisor는 서버에서 하나 혹은 그 이상의 독립적인 운영체제가 돌아가는 구조이다. -> OS 위에 다른 독립적인 OS가 가상적으로 돌아가는 구조이다.(ex.공인인증서) 각각의 OS는 서로에 대해서 알지 못한다. hypervisor 가상화를 사용하여 하나의 서버에 여러 OS를 실행시키면 리소스를 훨씬 효율적으로 쓰게 되지만 기술적으로 너무 무겁고 부팅 시간이 길고 리소스를 많이 차지한다.

Container는 OS의 커널 위의 user space에서 실행된다. 완전히 독립적인 운영체제를 가상화하는 것이 아니라 독립적인 user space를 가상화한다고 생각하면 된다. hypervisor 가상화보다 훨씬 가볍고 빠르지만 운영체제가 전혀 틀린 호스트에서는 실행을 시킬 수가 없다.

Docker Client & Server

Docker는 클라이언트와 서버 구조로 이루어져 있다. 클라이언트가 서버에 명령을 전달하고 서버가 실행시키는 구조이다. docker binary 커맨드가 클라이언트이고 dockerd 가 docker daemon / docker engine 이다. 클라이언트와 서버는 동일한 호스트 안에서 운영될수도 있고 서로 다른 호스트에서 운영될수도 있다.

Docker Image

"build" 부분에 해당한다. 컨테이너에서 실행시키고 싶은 어플리케이션을 도커 이미지로 빌드해서 실행시키게 된다.

Docker Registries

docker 이미지를 저장하는 repository라고 보면 된다. 소스 코드를 깃헙에 저장하여 관리하는 것처럼 도커 이미지는 docker hub 같은 docker registries 에 저장한다고 생각하면 된다. 깃헙처럼 public registry, private registry 가 있다.

Docker Containers

도커 이미지가 실행된다. 도커 이미지를 실행시키는 가상화 공간이다. 하나 혹은 그 이상의 프로세스를 실행시킬 수 있다.

profile
개발자꿈나무🌲

0개의 댓글