본문 바로가기
OS & Network

Docker(1) Docker(도커) 란

by 새발개발JA 2021. 8. 18.
반응형

Docker 기반으로 개발환경 세팅 중이다. 백엔드에서 많이 사용하는 기술이라고 막연히 생각만하다 막상 접해보니, 프론트에서 도커의 도움을 받아야 더 효율적인 개발이 가능하다는 것을 깨달았다.

Docker 란 무엇인지 자세히 알아보자.

 


Docker (도커) 란

 

도커란, 컨테이너 기반의 오픈소스 가상화 플랫폼이다.

한마디로 배에 컨테이너를 실어 쉽게 옮기듯이, 어플리케이션을 컨테이너에 담아 여러 서버에 쉽게 배포한다.

(시스템 도구, 코드, 런타임 등 실행에 필요한 모든 게 포함되있다.)

 

1. 이미지

이미지는 컨테이너 실행에 필요한 파일과 설정 값 등 모든 정보를 가지고 있다.

새로운 서버가 추가되면 미리 만들어 놓은 이미지를 다운받아 컨테이너만 생성하면 된다. 

 

‘도커파일’ 안에 가상화 할 프로그램들을 넣는다. 도커파일을 build 하면 도커 이미지가 생성된다.

 

  • 도커는 이미지를 만들기 위해 Dockerfile이라는 파일에 자체 DSL(Domain-specific language) 언어를 이용하여 이미지 생성 과정을 적는다.
  • Application 실행에 필요한 과정들을 Dockerfile로 작성하여 관리할 수 있으며, 해당 Dockerfile을 보면서 이미지 생성과정을 알 수 있으므로 수정하기도 용이하다.

 

2. 컨테이너 

컨테이너 기술은 호스트 OS를 유하며, 여러 컨테이너들이 서로 영향을 미치지 않고 독립적으로 실행되어 가볍다.

도커이미지를 run 하면 도커컨테이너가 생성된다.

 

3. 도커의 구조 

  • Client : user가 'docker run' 등의 명령어를 입력하면 이를 Server쪽에 전송하고, 이를 Docker daemon이 수행한다.
  • Docker daemon : docker api 요청을 수신하고 image, container, network, volume과 같은 docker object를 관리한다. 다른 docker daemon과의 통신을 통해 서비스를 관리할 수 있다.
  • Docker Registry : Docker 이미지 저장소이다.
  • Image : 컨테이너 실행에 필요한 파일과 설정값 등을 포함하고 있다. (Immutable) 공식 이미지의 경우 해당 이미지를 실행하기 위한 모든 것이 세팅되어 있다.

 

레이어 저장방식

  • 도커 이미지는 컨테이너를 실행하기 위한 모든 정보를 가지고 있기 때문에 용량이 크다. 기존 이미지에 파일 하나 추가했다고 다시 해당 용량이 큰 파일을 다시 받는건 비효율적이다.
  • 도커는 이런 문제를 해결하기 위해서 Layer 라는 개념을 사용한다. 컨테이너 생성할 때 레이어 방식을 사용하여 기존의 이미지 레이어 위에 읽기/쓰기(read-write) 레이어를 추가한다.
  • 유니온 파일 시스템을 이용하여 여러 개의 레이어를 → 하나의 파일 시스템으로 사용할 수 있게 해준다

 

 

ref: https://cloud.kt.com/portal/user-guide/education-eduadvanced-edu_adv_2

 

반응형

'OS & Network' 카테고리의 다른 글

SSH 란  (0) 2021.08.23
Docker(2) Docker-compose 란 (기본 명령어 & docker-compose.yml)  (1) 2021.08.22
Window - 윈도우10 화면 녹화 하기  (0) 2021.07.17
Network - VPN 이란?  (0) 2021.07.15
Cloud - AWS 란  (0) 2021.07.14

댓글