반응형
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 |
댓글