개발 공부한 것들/SeSSAC 웹 풀스텍 과정 회고록

[코딩온] 웹 풀스택 영등포 5기 과정_docker(1)

geograp 2024. 1. 2. 22:50

 

안녕하세요

도커 온라인 수업을 듣고 정리하기 위해 왔습니다.

요즘 완전 핫한 개념입니다.

 

0.Docker란?

컨테이너를 기반으로 하는 오픈 소스 가상화 플랫폼

 


1. Container란?

애플리케이션의 코드, 라이브러리, 환경 설정을 포함하는 어떤 상자(?)로,

애플리케이션을 안전하고 효율적으로 실행하게끔하고,

한 곳에서 다른 곳으로 쉽게 배포가 가능해서 이식성이 높은 것이 특징입니다.

 

애플리케이션을 실행하기 위한 가상의 환경으로, 커널쪽을 사용하여

가볍고 효율적으로 실행할 수 있어서 요즘 완전 핫한 기술입니다.

 

- Container 핵심 기술

 1) 호스트 OS의 자원을 분리해서 각 애플리케이션을 독립성을 높여 안전하게 실행 가능

 2) Container는 쉽게 이동하고 공유하고 재사용할 수 있다.

 3) Container는 호스트 OS 커널을 공유해서 가볍다.

 

 

- 가상머신 vs 도커

저는 일전에 virtual mechine으로 CLI만 활용하여 Cent Os를 구축하는 과제를 하였습니다.

가상머신으로 그냥 뭣도 모르고 하긴 했었는데,,, 확실히 비효율적이라는 생각이 듭니다.

가상화 소프트웨어 OS 위에 별도의 가상 OS를 또 실행하는 형식이라서,

운영체제를 다시 설치해야합니다.

 

 

 

컨테이너는 운영체제의 커널을 공유해서 애플리케이션을 실행하는 가상 환경입니다.

그래서 덕분에 가볍고 효율적이며 빠른 실행 속도를 가집니다.(운영체제가 없으니까)

대신에 운영체제의 커널을 공유해서 가상머신과 같은 완전한 독립성을 제공할 수 없고,

커널의 업데이트나 문제가 생긴다면 컨테이너들의 영향을 받습니다.

 

그리고 강력한 보안기능을 제공하지 못합니다. (개인적으로 도커의 가장 큰 단점이라고,,,생각함미다..)

 


 

2. Docker의 Architecture

 

2-1. Docker Daemon

Docker API 요청을 수신하고 Docker 내부의 오브젝트들을 관리함

client측에서 Daemon에게 명령어를 전달하고 Demon이 명령어를 실행하는 구조

 

2-2. Docker Client

CLI명령어를 사용하여 도커와 상호작용하게 해주는 수단 (인터페이스를 지칭하는 듯...?)

 

2-3. Docker Registry

Docker Images를 저장하는 곳 (도커 이미지는 가상머신의 스냅샷같은 것을 말합니다)

: Docker Hub - 누구나 도커를 저장할 수 있는 퍼블릭 레지스트리 (프라이빗도 있음)

 

2-4. Docker objects

도커에서 생성하고 사용하는 기타 개체