리눅스 컨테이너를 기반으로 하여 특정 서비스를 패키징하고 배포하는 오픈소스 프로그램
서버에 설치되는 무엇이든 아우르며, 실행환경에 상관없이 동일하게 실행될 것을 보증함
-> 특정한 소프트웨어를 개발한 후 배포하고자 할 때 유용한 배포 도구
도커는 컨테이너 개념을 활용 - 컨테이너에 이미지를 담아 구동시키는 방식
Docker File -> Docker Image -> Docker Container
리눅스상에서 여러개의 격리된 리눅스 시스템을 동작시키는 운영체제단의 가상화 기술
리눅스 커널단에 컨테이너를 올리는 방식으로 동작
- 가상머신 : 가상화(Hyper-V)를 이용하여 Host OS와 별개인 Guest OS를 생성
-> Guest와 Host가 서로 의존적이지 않음
-> 속도가 다소 느림, 용량이 큼
- 도커 (컨테이너) : 도커 엔진을 이용함
-> 성능적으로 개선, 메모리 용량도 적게 차지, 파일 크기가 작음
-> OS와 도커 컨테이너간 의존성이 존재
서버를 구축 후 업데이트가 필요한 경우 새로운 컨테이너를 생성하여 기존 컨테이너를 삭제하고 교체하는 작업을 수행 (Immutable)
도커로 돌아가는 소프트웨어 자체는 어떠한 데이터도 가지고 있으면 안되고, 임시파일 정도만 가진 상태에서 외부 스토리지에 데이터를 저장하는 형태로 개발 -> Micro Service의 특징과 유사
- 참고 문헌 -
https://www.weave.works/blog/a-practical-guide-to-choosing-between-docker-containers-and-vms
[블록 암호] HIGHT 개요 (0) | 2022.08.22 |
---|---|
[Tkinter] 유튜브 다운로드 프로그램 (미니 프로젝트) (0) | 2022.08.17 |
[Web] 게시판 조회(검색, 정렬) 기능에 GET 방식을 사용하는 이유 (0) | 2021.07.21 |
[Docker] 도커 설치 방법 / 에러 해결 방법 정리 (0) | 2021.07.13 |