엘리님의 "도커 한방에 정리 🐳 (모든 개발자들이 배워보고 싶어 하는 툴!) + 실습"을 보고 일부 내용을 정리한 내용입니다
도커란? 🐳
어플리케이션을 패키징 할 수 있는 툴.
어플리케이션을 구동하는데 필요한 모든 것을 도커 컨테이너 안에 담아놨다.
도커 컨테이너 사용 시 장점👍
- 어플리케이션을 구동하기 위한 런타임 환경에 필요한 모든것들을 어떤 pc에서도 언제든지 동일하게 구동 가능
- 다른 pc에서 버전으로 인한 문제 발생 x
- 다른 pc 환경 설정 및 변경에 대한 번거로움 줄여줌
VM과 도커의 차이🔍
VM
- 무거운 운영체제 포함
- 시작하는 데 오래걸림
- 컴퓨터, 운영체제, infrastructure 리소스를 많이 잡아먹을 수 있음
👉 차이점
- vm은 운영체제 포함
- 도커 컨테이너는 운영체제 미포함
컨테이너 구동시 컨테이너 엔진 필요
컨테이너 엔진이 host os에 접근해서 필요한 것들을 처리
컨테이너 엔진 중 가장 많이 사용되는게 "도커"
도커의 3대 구성요소! (순서)
도커의 큰그림 : 컨테이너를 만들고, 구동하고 배포한다
1️⃣ dockerfile
컨테이너를 어떻게 만들어야 되는지에 대한 설명서
구성 요소
- copy files : 어플리케이션을 구동하기 위해 꼭 필요한 파일 종류
- install dependencies : 필요한 라이브러리, 프레임워크등 외부 디펜던시 명시
- set environment variables : 환경 변수 설정
- run setup scripts: 구동하는 스크립트
2️⃣ image
실행되고 있는 어플리케이션의 상태를 스냅샷해서 만들어 둔것.
3️⃣ container
캡쳐해둔 이미지를 고립된 환경에서 개별적인 파일 시스템 안에서 실행 할 수 있는것.
컨테이너 안에서 어플리케이션이 동작한다.
도커 이미지 배포하는 과정 🔄
깃, 깃허브와 비슷한 관계
컨테이너 레지스트리(이미지를 공유할 수 있는)
public
- dockerhub
- red hat quary.io
- github packages
private
- aws
- google cloud
- microsoft azure
🐳 정리 🐳
- 어플리케이션을 구동하는데 필요한 도커파일 작성
- 이미지 만들기
- 컨테이너 레지스트리에 push
- server에 pull
- 컨테이너 실행