본 내용은 생활코딩-Docker 입구 수업을 공부하며 재정리한 내용입니다.
AI/ML 프로젝트를 진행하면서 환경설정의 어려움을 겪었습니다.
특히 팀 단위 프로젝트를 할 때, 각자의 OS, 프로그램 버전 등 모든 환경이 달라 같은 모델도 동작하지 않을 때가 있었습니다.
그래서 매번 버전을 맞추는 등 수고를 했는데, 이런 것들을 편리하게 해결할 수 있는 것을 알게 되었고...
바로 Docker! 였습니다.
본격적으로 공부하고 싶어 구글에서 진행하는 스터디 잼을 신청했습니다.
스터디 잼을 시작하기 전 도커, 컨테이너 등의 개념을 정립하고자 생활코딩을 통해 공부했습니다.
맨 위 링크에 있는 Docker 입구 수업을 들으며, 모르는 부분은 찾아가며 정리해보았습니다.
잘못된 내용에 대한 의견은 댓글로 부탁드립니다. 감사드립니다. :-)
- app을 배포하고자 한다.
- web server, db가 필요하다.
- 각 OS와 app에 필요한 버전 관리를 해야 함
- 버전 관리를 어떻게 할 수 있을까? 방법은?
- 한 컴퓨터 위에 가상 컴퓨터를 만든다.
- 가상 컴퓨터 안에 OS와 web server, db를 설치한다.
- Vmware, Virtualbox 등이 이것과 같다.
- but, os는 매번 설치하기에 너무 크고, OS위에 OS? 비효율적이다.
- 그럼 이건?
- 1대의 컴퓨터에서 각각의 app을 실행시킨다.
- 이때 app은 각각 격리된 공간에서 실행된다.
- OS가 설치된 컴퓨터 (1대의 컴퓨터) ⇒ Host라고 칭한다.
- app이 실행되는 격리된 공간 ⇒ Container라고 칭한다.
- Container : app이 실행될 수 있는 Library이다. 실행파일들이 있다.
- Host에 이미 설치된 OS를 Contatiner들이 공유한다.
- OS를 재설치할 필요가 없어서 가볍고, 속도가 빠르다.
- 1대의 컴퓨터에서 각각의 app을 실행시킨다.
- Docker : Container를 사용하기 위해 필요한 도구(Container Runtime) 중 유명한 것!
반응형
'Docker & Kubernetes' 카테고리의 다른 글
2. 도커 이미지, 네트워크 (0) | 2022.08.17 |
---|---|
1. 컨테이너, 도커, 쿠버네티스 구분하기 (0) | 2022.08.17 |