딩코딩코딩
2023. 6. 29. 09:04
컨테이너: 하나의 Application 프로세스
1st Container | 2nd Container | 3rd Container |
NodeJS Web Server | PHP | MySQL DB |
컨테이너의 특징: 컨테이너 하나가 독립된 공간으로(Isolate) 분리되서 운영된다(
CPU, memory, network, disk(하드웨어 Resource를 따로 가지고 있음)
UserID, 동작되는 Application, Hostname, Network도 독립적으로 구성f
Docker Host: 도커 설치 & Daemon , 도커 데몬이 없으면 도커를 실행할 수 없음
하지만 독립된 컨테이너가 동일한(하나의)커널을 사용함
호스트 입장에서 컨테이너는 단순히 동작되는 Process임
가상화: 컴퓨터 리소스의 추상화, 애플리케이션, 서버, 저장장치 등 물리적으로 하나인 것을 복수의 것처럼 복수의 것을 하나인 것 처럼 만들어 주는 기술.
즉, 컨테이너라는 것은 리눅스가 제공하는 기능을 이용하여 단절된 공간에서 할당받은 시스템 자원을 통해 독립적으로 가동되는 일종의 '프로세스' 입니다. 가상환경이 커널에서 공유되기 때문에 새로운 커널을 시작할 필요도, 하드웨어 초기화 등의 작업도 필요 없습니다. 물론 프로세스를 격리하는 오버헤드가 존재하지만, VM의 하드웨어 에뮬레이트와 비교하였을 때 오버헤드가 거의 존재하지 않는 것과 마찬가지입니다.