Docker는 애플리케이션을 컨테이너라는 단위로 패키징하고 실행할 수 있는 플랫폼이다. 이는 소프트웨어의 실행 환경을 독립적으로 분리하여, 애플리케이션의 배포와 관리를 더욱 효율적으로 만들어준다.
Docker 이미지는 애플리케이션 실행에 필요한 모든 파일, 라이브러리, 종속성 등을 포함한 불변의 템플릿입니다.
이를 기반으로 컨테이너를 생성합니다.
예: Ubuntu 기반 이미지에 Python과 필요한 라이브러리를 설치해 애플리케이션 이미지를 생성.
컨테이너는 이미지에서 실행된 독립적인 실행 환경입니다.
가상 머신(VM)
과 유사하지만, 호스트 OS 커널을 공유하므로 경량입니다.
애플리케이션을 격리된 환경에서 실행할 수 있어 배포 및 관리를 단순화합니다.
Docker 이미지를 생성하기 위한 설정 파일입니다.
명령어를 사용해 애플리케이션 실행에 필요한 환경을 정의합니다
FROM python:3.8
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
Docker 이미지를 공유할 수 있는 공식 저장소입니다.
필요한 이미지를 검색하고 다운로드하거나, 사용자 정의 이미지를 업로드할 수 있습니다.
가상 머신에 비해 자원을 적게 사용하며 빠르게 실행됩니다.
컨테이너는 필요한 애플리케이션과 종속성만 포함합니다.
Docker 컨테이너는 운영체제에 상관없이 동일하게 동작합니다.
예를 들어, 로컬에서 개발한 컨테이너를 그대로 클라우드 서버에 배포 가능합니다.
컨테이너는 실행이 빠르고 쉽게 생성/삭제할 수 있어 CI/CD 파이프라인에서 자주 사용됩니다.
컨테이너는 독립적으로 실행되며, 서로 간섭하지 않습니다.
여러 애플리케이션을 동일한 서버에서 안전하게 실행할 수 있습니다.
docker run [이미지]: 컨테이너 실행
docker ps: 실행 중인 컨테이너 목록 확인
docker stop [컨테이너]: 컨테이너 중지
docker rm [컨테이너]: 컨테이너 삭제
docker build -t [이미지 이름] .
: Dockerfile을 사용해 이미지 생성
docker images: 이미지 목록 확인
docker rmi [이미지]: 이미지 삭제
네트워크 및 볼륨 관리
docker network: 네트워크 관리
docker volume: 데이터 지속성을 위한 볼륨 관리