Docker & Kubernetes

0. Docker란?

본 내용은 생활코딩-Docker 입구 수업을 공부하며 재정리한 내용입니다.

AI/ML 프로젝트를 진행하면서 환경설정의 어려움을 겪었습니다.

특히 팀 단위 프로젝트를 할 때, 각자의 OS, 프로그램 버전 등 모든 환경이 달라 같은 모델도 동작하지 않을 때가 있었습니다.

그래서 매번 버전을 맞추는 등 수고를 했는데, 이런 것들을 편리하게 해결할 수 있는 것을 알게 되었고...

바로 Docker! 였습니다.

 

본격적으로 공부하고 싶어 구글에서 진행하는 스터디 잼을 신청했습니다.

스터디 잼을 시작하기 전 도커, 컨테이너 등의 개념을 정립하고자 생활코딩을 통해 공부했습니다.

 

맨 위 링크에 있는 Docker 입구 수업을 들으며, 모르는 부분은 찾아가며 정리해보았습니다. 

잘못된 내용에 대한 의견은 댓글로 부탁드립니다. 감사드립니다. :-)


  1. app을 배포하고자 한다.
    1. web server, db가 필요하다.
    2. 각 OS와 app에 필요한 버전 관리를 해야 함
  2. 버전 관리를 어떻게 할 수 있을까? 방법은?
    1. 한 컴퓨터 위에 가상 컴퓨터를 만든다.
    2. 가상 컴퓨터 안에 OS와 web server, db를 설치한다.
      1. Vmware, Virtualbox 등이 이것과 같다.
    3. but, os는 매번 설치하기에 너무 크고, OS위에 OS? 비효율적이다.
  3. 그럼 이건?
    1. 1대의 컴퓨터에서 각각의 app을 실행시킨다.
      1. 이때 app은 각각 격리된 공간에서 실행된다.
      2. OS가 설치된 컴퓨터 (1대의 컴퓨터) ⇒ Host라고 칭한다.
    2. app이 실행되는 격리된 공간 ⇒ Container라고 칭한다. 
      1. Container : app이 실행될 수 있는 Library이다. 실행파일들이 있다.
    3. Host에 이미 설치된 OS를 Contatiner들이 공유한다.
      1. OS를 재설치할 필요가 없어서 가볍고, 속도가 빠르다.
  4. Docker : Container를 사용하기 위해 필요한 도구(Container Runtime) 중 유명한 것! 
반응형