Skip to content

Docker 저장 드라이버와 파일 시스템

이번 강의에서는 Docker가 데이터를 어떻게 저장하고, 컨테이너의 파일 시스템을 어떻게 관리하는지에 대해 배웁니다. Docker는 /var/lib/docker/ 위치에 기본적으로 데이터를 저장하며, 이곳에는 여러 하위 폴더들이 있습니다.

Docker 데이터 저장 구조

  • /var/lib/docker/
    • containers: 컨테이너 관련 파일이 저장됩니다.
    • images: 이미지 파일이 저장됩니다.
    • volumes: 도커 볼륨이 생성됩니다.

Docker 이미지의 레이어드 아키텍처

Docker 이미지는 레이어드 아키텍처를 사용하여 구축됩니다. 각 Dockerfile의 명령어는 이미지의 새 레이어를 생성하며, 이전 레이어에서 변경된 부분만 저장합니다.

예시: Dockerfile 레이어 생성

Dockerfile
# 기본 OS
FROM ubuntu:latest

# APT 패키지 설치
RUN apt-get update && apt-get install -y package

# Python 패키지 설치
RUN pip install flask

# 소스 코드 복사
COPY . /app

# 엔트리포인트 설정
CMD ["python", "/app/app.py"]

이렇게 생성된 이미지는 빌드시 재사용 가능한 레이어로 구성되어 있어, 빠르게 이미지를 재구성할 수 있습니다.

Docker 볼륨과 바인드 마운트

데이터를 영구적으로 저장하기 위해 Docker는 볼륨을 사용할 수 있습니다. 볼륨을 사용하면 컨테이너가 삭제되더라도 데이터를 보존할 수 있습니다.

볼륨 생성 및 마운트 예시

bash
# 볼륨 생성
docker volume create my_volume

# 볼륨을 컨테이너에 마운트
docker run -v my_volume:/var/lib/mysql mysql

바인드 마운트 사용 예시

bash
# 호스트의 특정 폴더를 컨테이너에 마운트
docker run -v /data/mysql:/var/lib/mysql mysql

요약

  • Docker는 /var/lib/docker/ 아래에 데이터를 저장합니다.
  • 이미지는 레이어드 아키텍처로 구성되어 있어 효율적으로 관리됩니다.
  • 데이터의 영구 저장을 위해 볼륨을 사용할 수 있으며, 필요에 따라 바인드 마운트를 사용할 수도 있습니다.

Docker References

https://docs.docker.com/storage/https://docs.docker.com/engine/reference/commandline/volume_create/https://docs.docker.com/engine/reference/commandline/volume_ls/