Introduction
- 프로젝트, 애플리케이션 관리, 배포 개발
- 도커 - 쿠버네티스 연결
- 쿠버네티스, 쿠버네티스를 구성하는 것
Docker 란?
- 컨테이너를 생성 및 관리하는 도구
- 컨테이너란?
- 표준화된 소프트웨어 유닛
- 코드 패키지(종속성 및 도구 포함)
항상 동일한 것을 보장(필요한 모든 것)
- 다른 컨테이너와 섞이지 않는다.
왜 Docker 와 Container 인가?
컨테이너 ?
독립적인 표준화된 애플리케이션 패키지
- 컨테이너 필요 이유
- 해당 버전이 local에만 설치되어 있을 수 있으므로, 원격 시스템 등에 배포하여 전 세계에서 동작하도록 하는 경우에는? - 문제를 빨리 파악하는 것을 넘어서 문제가 일어나지 않게 할 수 있다
- 팀마다 개발 환경을 통일하도록(로컬 환경에 의존하여 동작되지 않는 문제가 발생하지 않도록)
- 도구, 버전의 충돌을 방지
Virtual Machine vs Docker
Virtual Machine으로 하면 안되나?
- linux같은 것이 있다고 하면 에뮬레이트(한 시스템에서 다른 시스템 복제) 등을 이용해서 동일한 환경 사용 가능 - Docker, Container와 같은 결과를 얻을 수 있다.
- 몇 가지 문제가 있다.
컨테이너가 핵심. 도커는 이를 매니징하는 도구.
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)
Linux
- Docker Desktop
- Daemon : 계속 실행되며 Docker가 동작하는지를 파악
- CLI
- Docker Hub : 클라우드, 웹에서 이미지를 호스팅하여 다른 시스템과 사람들에게 쉽게 공유하도록 하는 서비스
- Docker Compose : 도커를 기반으로하는 도구, 더 복잡한 컨테이너, 다중 컨테이너 프로젝트를 더 쉽게 관리 가능.