Docker & Kubernetes #1

Copes·2022년 12월 31일

Docker & Kubernetes

목록 보기
1/2

Introduction

  • 프로젝트, 애플리케이션 관리, 배포 개발
  • 도커 - 쿠버네티스 연결
  • 쿠버네티스, 쿠버네티스를 구성하는 것

Docker 란?

  • 컨테이너를 생성 및 관리하는 도구
  • 컨테이너란?
    • 표준화된 소프트웨어 유닛
    • 코드 패키지(종속성 및 도구 포함)

      항상 동일한 것을 보장(필요한 모든 것)

    • 다른 컨테이너와 섞이지 않는다.

왜 Docker 와 Container 인가?

컨테이너 ?

독립적인 표준화된 애플리케이션 패키지

  • 컨테이너 필요 이유
    • 해당 버전이 local에만 설치되어 있을 수 있으므로, 원격 시스템 등에 배포하여 전 세계에서 동작하도록 하는 경우에는? - 문제를 빨리 파악하는 것을 넘어서 문제가 일어나지 않게 할 수 있다
    • 팀마다 개발 환경을 통일하도록(로컬 환경에 의존하여 동작되지 않는 문제가 발생하지 않도록)
    • 도구, 버전의 충돌을 방지

Virtual Machine vs Docker

Virtual Machine으로 하면 안되나?

  • linux같은 것이 있다고 하면 에뮬레이트(한 시스템에서 다른 시스템 복제) 등을 이용해서 동일한 환경 사용 가능 - Docker, Container와 같은 결과를 얻을 수 있다.
  • 몇 가지 문제가 있다.
    • 여러 virtual machine에서 발생하는 overhead

    • 매번 새로운 설정 필요

    • 메모리, cpu, drive 등의 자원 낭비

      항상 동일하게 존재해야 하는 많은 것들이 존재

컨테이너가 핵심. 도커는 이를 매니징하는 도구.

Container가 더 나은 핵심?

  • 서로 다른 OS라고 따로 만드는 것이 아니라 OS가 기본적으로 내재하고있는 컨테니어 에뮬레이트를 지원하는 내장 컨테이너를 활용

    즉, Windows, Linux, Mac OS에 따라 3개를 만들 필요가 없다.

  • 그 위에 Docker Engine
  • Docker Engine을 기반으로 동작
  • Virtual Machine에 넣는 것보다 훨씬 적은 단위의 것들이 들어간다(Layer와 같이. ex) Libraries, Dependencies, Tools)
  • 이미지에 빌드 가능

Virtual Machine에 비해 Docker를 사용하는 것의 이점

  • OS에 영향이 적고 빠름
  • 적은 디스크
  • Sharing, rebuilding 등이 쉽다
  • 앱과 환경이 있지만 부가적인 것들은 필요없게 할 수 있다.

Docker 설정 - Introduction

Windows, MacOS

  • Docker Desktop 이용(구버전은 Docker Toolbox)
    • 이것으로 Docker Engine을 이용

Linux

  • Docker Engine을 직접 설치

Docker Tools 개요

  • Docker Desktop
  • Daemon : 계속 실행되며 Docker가 동작하는지를 파악
  • CLI
  • Docker Hub : 클라우드, 웹에서 이미지를 호스팅하여 다른 시스템과 사람들에게 쉽게 공유하도록 하는 서비스
  • Docker Compose : 도커를 기반으로하는 도구, 더 복잡한 컨테이너, 다중 컨테이너 프로젝트를 더 쉽게 관리 가능.

0개의 댓글