<aside>

Docker


애플리케이션을 실행하기 위한 컨테이너화 플랫폼

쉽게 말해, 프로그램과 그 프로그램이 필요로 하는 환경(라이브러리, 설정 등)을 한 묶음(컨테이너)로 만들어서 어디서든 동일하게 실행할 수 있게 해주는 도구이다

</aside>

<aside>

장점


컨테이너 기반 가상화

환경 일관성 보장

이미지와 컨테이너

기본 개념


이미지

<aside>

컨테이너를 만들기 위한 설계도

애플리케이션, 라이브러리, 환경 설정 등이 포함된다.

</aside>

컨테이너

<aside>

이미지를 기반으로 실제로 실행되는 작동 환경 (이미지는 설계도, 컨테이너는 그 설계도로 만든 집 같은 느낌)

여러 컨테이너를 동시에 띄워서 다양한 버전이나 서비스를 시험할 수 있음

</aside>

Dockerfile

<aside>

이미지를 만들기 위한 설정 파일

어떤 OS를 기반으로 하고, 어떤 패키지를 설치할지, 어떤 명령어로 앱을 실행할지 기록

# Python Flask 앱용 이미지 설계도

FROM python:3.11
WORKDIR /app
COPY . /app
RUN pip install flask
CMD ["python", "app.py"]

</aside>

Docker Hub

<aside>

이미지 공유 저장소

다른 사람이 만든 이미지를 내려받아 바로 쓸 수 있음

docker pull python:3.11

</aside>

컨테이너 관리 명령어

<aside>

명령어 설명
docker run 이미지로 컨테이너 실행
docker ps 실행 중인 컨테이너 확인
docker stop 컨테이너 종료
docker rm 컨테이너 삭제
</aside>