컨테이너는 하나의 Application(애플리케이션) 프로세스입니다.
호스트 OS상에 논리적인 컨테이너를 만들고, 애플리케이션을 작동시키기 위해 필요한 라이브러리나 애플리케이션 등을 하나로 모아, 마치 별도의 서버인 것처럼 사용할 수 있게 만든 기술입니다.
도커 컨테이너의 특징은 각각의 컨테이너가 독립적으로 실행되는 것이 특징입니다.
예를 들면 하나의 CentOS에 도커 컨테이너를 3개를 만들었으면 이 3개의 컨테이너들은 각각 따로 독립적으로 운용되는 것입니다.
cpu와 memory, network, disk, 가 각각 따로 움직입니다. 그리고 userID도 다르게 독립적으로 구성이 됩니다.
이것이 일반 Application과 컨테이너 Application의 차이점입니다.
OS는 하나지만 완전히 각각 따로 실행되는 것이 특징입니다.
여기까지의 설명이 어렵다면 계속해서 읽어보시길 바랍니다.
나에게 하나의 데스크톱이나 노트북이 있다고 가정하고 이 두 개를 HOST PC라고 부르겠습니다.
HOST는 CPU와 Memory, SSD로 움직이고 OS는 CentOS7이 설치가 되어있는 상태입니다.
이때 HOST PC는 3개의 컨테이너를 운용하고 있는데 이 3개의 컨테이너는 HOST PC의 CPU와 Memory, SSD를 나누어 가지고 있는 상태입니다.
하지만 HOST PC는 그냥 Process라고 생각하고 자신의 자원을 씁니다.
HOST PC를 운영하고 있는 나와 여러분만 이 HOST PC에 컨테이너가 3개가 운영되고 있구나 판단하고 있고
HOST PC는 그냥 Process가 실행 중이구나~라고 판단하고 있습니다.
HOST PC를 운용하고 있는 우리는 HOST PC에서 3개의 컨테이너가 동작중이고 이 3개의 컨테이너는 다 다른, 독립적으로 실행 중이다 라는 것을 생각하고 있습니다.
컨테이너를 가동하려면 설비가 필요합니다.
냉동 참치를 실어야 하는 컨테이너라면 컨테이너에 냉동설비가 필요합니다.
그리고 냉동참치를 저장하고 배가 이동을 합니다.
아래의 사진도 위의 냉동참치 컨테이너와 비슷합니다.
app.js(냉동참치)를 가동하려면 nodeJS(냉동설비)를 하고 run node app.js를 실행합니다.
그래서 우리는 nodejs처럼 설비를 base inage Layer라고 부릅니다 층으로 나누어져 있으니까요
그리고 base를 준비했으니 구동하려고 하는 source를 넣습니다. 이것을 source image Layer라고 합니다.
준비가 되었으면 run node app.js 하겠죠?
요약
1. 컨테이너 이미지는 하드디스크에 파일 형태로 저장이 되어있다
2. 컨테이너는 HOST PC에서 그냥 process로 판단하고 있고 실제로 컨테이너는 실행 중인 process이다.
3. 실행 중인 컨테이너가 여러 개 일 경우 각각 Isolate 한다.
4. 컨테이너는 각각 운영하려는 목적에 맞게 설비와 process가 설치 운영된다.
Docker HOST : 도커 데몬이 동작되고 있는 시스템
Docker Daemon : 설치한 도커 (systemctl start docker)
Docker Client Command : docker search nginx = 데몬아 이렇게 작업 좀 해줄래?라고 명령하는 것
Docker Hub : docker.com에서 제공하는 10만 개의 컨테이너를 가지고 오는 곳
Container Images : file로 저장되는 이미지
Container : 하나의 process로 운영되는 것
'Cloud인프라 > docker(도커)' 카테고리의 다른 글
03 Docker(도커) 기본 명령어 (0) | 2022.02.17 |
---|---|
01 CentOS7 Docker(도커)설치 (0) | 2022.02.17 |