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 |