Chapter01: 개요

hahic·2022년 6월 5일
0

Docker

목록 보기
1/7
post-thumbnail

Concept

🔎 Docker

Container를 생성하고 관리하는 도구

🔎 Container

표준화된 소프트웨어 유닛
: 코드 패키지와 해당 코드를 실행하는데 필요한 종속성과 도구가 포함되어 있음


Abount Docker

🔔 Container을 사용해야 하는 이유

Docker로 빌드된 특정 Container을 실행하는 경우,

그 Container에는 애플리케이션 소스 코드 뿐만이 아니라
코드를 실행하는데 필요한 도구 또한 포함하고 있기 때문에,

해당 Container을 실행하면, 어느 환경이든
동일한 코드 / 동일한 도구 / 동일한 버전 / 동일한 동작과 결과를 제공

이로 인해, 따라오는 장점으로는

  • Development Environment와 Production Environment
    환경을 동일하게 구성 가능
  • 개발하는 프로젝트가 여러 개인 경우,
    버전이 충돌하여 생기는 에러의 가능성을 제거

🔔 Virtual Machines VS Virtual Operating Systems

  • Virtual Machines
    : Virtual OS + (Libraries/Dependencies/Tools) + App

[ 장점 ]
1. 분리된 환경을 구성할 수 있음
2. 특정 환경을 구성할 수 있음

[ 단점 ]
1. Virtual OS 오버헤드가 발생할 수 있음
2. 메모리, CPU, 하드 드라이브의 공간을 낭비
3. app을 초기 설정하는데 공수가 많이 듬

  • Virtual Operating Systems
    : OS Built-in / Emulated Container Support 사용 (ex. Docker)

[ 장점 ]
1. Virtual Machines 장점을 가지며, 단점을 보완
2. 불필요한 중복된 OS, 수많은 추가 도구를 포함하지 않음

🔔 Container VS Virtual Machines

  • Container
  1. OS에 낮은 영향 줌
  2. 빠른 구동 속도
  3. 최소한의 Disk 사용량
  4. 공유, 재구축, 배포 용이
  5. app에 필요한 모든 것을 캡슐화한 앱과 환경만을 보유
    즉, App을 캡술화함
  • Virtual Machines
  1. OS에 큰 영향 줄 수 있음
  2. 느린 구동 속도
  3. Container 보다 더 많은 디스크 공간 차지
  4. 공유, 재구축, 배포가 가능하지만, Container보다 까다로움
  5. app에 필요한 모든 것을 캡슐화한 앱과 환경뿐만 아니라,
    컴퓨터 전체를 캡슐화 함

Docker 구성

  • Docker Engine
    Docker 전용 가상 환경을 구성하는 도구

    대부분의 OS들은 Docker를 지원하지 않음
    Docker를 지원하지 않는 OS에서 Docker를 사용하려면, 가상 환경을 구성해야 함

  • Docker ToolBox
    가상화를 지원하지 않는 OS에 docker를 설치할 수 있도록 도와주는 도구

  • Docker Desktop
    docker가 정상적으로 실행되고 있는 확인하는 프로그램

  • Docker Hub
    클라우드 or 웹에서 이미지를 호스팅하여
    다른 시스템과 사람들에게 쉽게 공유할 수 있게 해주는 서비스

  • Docker Compose
    Docker를 기반으로 하는 도구
    복잡한 컨테이너 또는 다중 컨테이너 프로젝트를 더 쉽게 관리 가능

  • Kubernetes
    복잡하게 컨테이너화된 애플리케이션을 배포할 때, 관리하는 도구


Reference

Docker PlayGround

profile
👩‍💻 Junior Backend Developer

0개의 댓글