기타

[DOCKER] 1편_도커 간단하게 알아보기

steadyMan 2024. 12. 18. 01:27

혼자 아등바등 알아보고 실행해 보며 정리한 도커에 관한 정리글입니다.
도커를 사용하는 환경에 있기에 필요한 부분을 학습하며 정리하였습니다.


[도커란?]

애플리케이션 실행에 필요한 코드, 라이브러리 다양한 종속성 등을 하나의 패키지(컨테이너)로 묶어 격리된 환경에서 구동할 수 해주는 오픈소스 플랫폼 

호스트 서버의 OS 커널을 공유하기 때문에 리소스 사용이 적고 빠르면서 컨테이너 단위로 실행이 가능하기에 어떤 환경에서도 동일하게 실행이 가능하고 이는 도커 이미지를 활용하여 동일한 환경을 쉽고 빠르게 구축한다.

또한 여러 컨테이너를 생성하고 실행하는 것이 용이하여 확장성이 좋으며 동일한 OS 커널을 공유해야 하므로 리눅스 기반 컨테이너는 리눅스에서만 실행되나, 도커 데스크톱을 사용하면 윈도우, 맥 환경에서도 리눅스 컨테이너를 실행 가능하다.

[핵심 키워드]

도커 컨테이너

애플리케이션 실행에 필요한 코드, 라이브러리, 종속성들을 하나로 묶은 독립된 환경을 뜻하며 다른 컨테이너와 리소스, 실행환경 등을 공유하지 않는다. 도커 이미지를 기반으로 생성되기 때문에 어디든 동일한 환경으로 실행이 가능하다. 

이미지를 실행하면 컨테이너 런타임이 격리된 실행 환경을 제공하며 호스트 OS의 커널 및 네트워크등을 필요에 따라 가상화한다.

도커 이미지

컨테이너를 실행하기 위한 일종의 불편 상태의 템플릿, 여러 레이어로 구성되며 이를 통해 일관된 환경을 보장할 수 있다.

이미지에 애플리케이션 코드와 필요한 종속성 정보들이 포함된다. 태그(tag)와 함께 버전으로 관리된다. ex) application:latest

도커 이미지를 생성하기 위해선 설정파일인 Dockerfile을 작성해야 한다.

도커 이미지는 다음과 같은 계층 구조로 구성된다. 

  • Base Layer
    • 이미지의 기본 레이어, 보통 OS(Alpine, Ubuntu) 환경을 포함
  • Intermediate Layers
    • 애플리케이션 실행에 필요한 라이브러리, 종속성을 추가하는 레이어
  • Application Layer
    • 최종적으로 애플리케이션 코드와 설정이 추가된 레이어

Docker compose

사용은 선택사항이며 컨테이너를 한 개 이상 사용할 때 물론 각각 관리할 수 있으나

docker compose는 다중 컨테이너 환경을 정의하고 실행할 수 있도록 돕는 Docker의 도구이다

docker-compose.yml 파일에 모든 컨테이너를 정의하고 이들을 관리한다.

단일 명령어로 여러 컨테이너를 동시에 시작하거나 중지할 수 있고 서비스 간의 실행 순서도 조정이 가능하다.