docker(도커) 및 쿠버네티스
docker 란 무엇인가? VM과 비교
데이터왕
2023. 12. 23. 13:14
내가 만든 프로그램이 다른 컴퓨터에서는 안돌아간다면?
- 설치 과정에서 중요한 파일이 빠질수 있음
- 운영체제가 다르고, 다른 버전이 설치되면 라이브러리 버전간 호환이슈 발생
일정하게 똑같은 환경에서 만들어 주는법 (like 밀키트)
- 도커 이미지(모듈 버전등 환경변수)와, 도커 컨테이너(도커이미지+운영시스템) 필요
예) 중화요리 밀키트(도커이미지)를 웍(도커 컨테이너) 에서 센불로 요리해야 제맛!
Virtual Machine(docker 등장 이전의 강자)
- 예 ) EC2가 대표적인 VM, 맥 컴퓨터 위에서 윈도우, 리눅스들 가상 운영체제를 돌리는 경우
- VM 구조 : 호스트 os(macitosh) 위에 VM 관리 툴( hypervisors) 가 필요하고, 그 위에 운영체제
- VM 장단점
장점 : 독립적이고 분리된 공간 제공, 다수의 소프트를 각 VM에서 독립적으로 실행가능
단점 : 각 os 별로 비용, VM끼리 cpu,램, 용량들을 나눠야 해서 성능이 떨어짐
docker container
- docker의 운영체제는 일반 운영체제에 비해서 경량화 됌(필요한 만큼만 사용)
- Docker 제작시 사용한 호스트 OS와, 그 컨테이너 가 호환되는 OS
맥 : 경량화 리눅스 / 윈도우 : 윈도우, 리눅스 / 리눅스 : 리눅스 only
+리눅스는 어디서 만들든 다 사용할수 있음 - 장점
1) 각 컨테이너 별로 독립적이고 분리된 공간, 소프트 각각 실행도 가능
2) 수십 수백 컨테이너 사용시 , 각각 따로 구현에 비해 자원소비가 적음
3) 별도의 os 라이센스 비용 필요없고, 경량화 os라 빠르게 실행됨 - 단점
1) 많은 컨테이너 관리 쉽지 않음
2) 컨테이너 제작 os, 동작 os 간의 호환성 이슈
3) GUI 소프트 개발에 적합치 않음(VM이 더 적합)