본문 바로가기
[스파르타코딩클럽]/Docker & CICD

Docker volume

by 진진리 2024. 3. 19.
728x90

Volume 사용 이유

  • 데이터 영속성: 컨테이너가 사라져도 데이터는 그대로 남음
  • 같은 데이터를 여러 컨테이너가 사용
  • 데이터를 백업하고 옯기기 쉬움
  • 많은 양의 데이터를 다룰 때 더 빠르게 처리해줌
  • 데이터를 안전하게 보관: 중요한 데이터를 컨테이너 밖에 따로 안전하게 보관
  • 코드와 데이터를 따로: 코드를 바꿔도 데이터는 그대로 유지. 개발 및 운영에 편리

 

 

 

volume

  • 컴퓨터의 특정 폴더 (대부분 /var/lib/docker/volumes/ 라는 곳)에 Docker가 관리해서 사용하는 데이터를 여기에 저장
  • 볼륨의 좋은 점
    • 백업하고 옮기기 쉬움
    • Docker 명령어로 관리
    • 어디서나 잘 작동
    • 여러 컨테이너와 함께 사용 가능
    • 볼륨 드라이버로 더 많은 기능을 추가 가능
    • Mac이나 Windows에서 더 빠르게 돌아감

bind mount

  • 컴퓨터의 특정 폴더나 파일을 Docker 컨테이너 안에서 직접 쓸 수 있게 해줌
  • 컴퓨터 안의 정확한 위치(절대 경로)에 있는 파일이나 폴더를 사용

tmpfs mount

  • 컴퓨터 메모리를 사용해서 일시적인 데이터를 저장하는 방법
  • 사용 이유
    • 일시적인 데이터 저장
    • 컴퓨터의 파일 시스템 안 씀: 대신 메모리를 사용
    • 성능 향상: 메모리를 사용하므로 데이터를 빠르게 읽고 쓸 수 있음
    • 컨테이너끼리 공유 안 됨
  • 컨테이너가 끝나면 자동으로 데이터도 사라져서 편리

 

실습

  • inspect 명령으로 volume 확인
docker volume inspect datavol
[
    {
        "CreatedAt": "2023-11-25T14:33:11+09:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/datavol/_data",
        "Name": "datavol",
        "Options": null,
        "Scope": "local"
    }
]

 

  • readonly와 readwrite(default) 디렉토리 마운트
cd ~
mkdir readonly
mkdir readwrite
docker run -ti -v ~/readonly:/readonly:ro -v ~/readwrite:/readwrite:rw ubuntu

# Docker Machine 내부에서
echo "test" > /readonly/readonly.txt # 파일을 쓸 수 없음
echo "test" > /readwrite/readwrite.txt # 파일 쓰기 가능
exit

# Host Machine에서
cat ~/readwrite/readwrite.txt

'[스파르타코딩클럽] > Docker & CICD' 카테고리의 다른 글

Docker Image 심화  (0) 2024.03.19
Docker Network  (2) 2024.03.19
Docker 모니터링&로깅  (0) 2024.03.19
Docker Compose  (1) 2024.03.19
Dockerfile  (0) 2024.03.18