프로젝트/클라우드 스터디
[2회차]docker 볼륨관리
jini________07
2025. 2. 3. 00:16
[n회차 글 목록]
1. 도커 컨테이너의 데이터 관리 개념
- 기본적으로 모든 데이터는 임시로 저장된다. → 컨테이너 삭제 시 모든 Data 사라짐.
- Data를 지속적으로 사용하고자하는 경우, ‘볼륨’이라는 개념 이용
- 도커 컨테이너는 호스트와 컨테이너 사이의 디렉토리 공유 및 재사용 기능을 제공함. → 내용 수정시 모두 동일하게 반영됨.
- A컨테이너에서 사용한 Data는 B컨테이너 에서도 사용 가능.
- 쓰기 가능한 컨테이너 레이어에 Data가 저장되는데, 사실 데이터를 쉽게 이동 불가능함.
- 파일 시스템을 관리하기 위한 스토리지 드라이버가 필요함.
ex) mysql 컨테이너를 사용 후 DB도 구상함 → mysql 컨테이너 삭제하면 데이터 베이스도 날라가는 문제 발생 → 볼륨 이용해서 영구적인 데이터 보존 가능
도커에서 컨테이너가 호스트 시스템에 파일을 저장할 수 있는 방법에는 Volume, bind mounts, tmfs mount 등이 있음.
2. Docker 볼륨(volume) 관리 방식
- 볼륨은 자동 및 수동 방식으로 구성가능
- 만들어진 볼륨은 호스트에 저장됨.
docker volume 명령어
[root@localhost Desktop]# docker volume help Usage: docker volume COMMAND Manage volumes Commands: create Create a volume inspect Display detailed information on one or more volumes ls List volumes prune Remove unused local volumes rm Remove one or more volumes update Update a volume (cluster volumes only) Run 'docker volume COMMAND --help' for more information on a command. |
볼륨 생성
docker volume create 볼륨명
볼륨 확인
docker volume ls //볼륨 목록
docker volume inspect 볼륨명 //볼륨 자세한 정보
볼륨과 컨테이너 연결 예제
docker run시 -v 옵션을 사용하여 볼륨과 컨테이너를 연결한다.
docker run -d --name 이미지명 -v 호스트_볼륨정보:컨테이너_경로_정보
docker run -d --name test1 -v test_vol:/var/lib/mysql
웹 서버 1,2 를 데이터 연동시키기
docker run -d --name web1 -p 8080:80 -v test_vol1:/var/www nginx
docker run -d --name web2 -p 8081:80 -v test_vol2:/var/www
컨테이너 삭제 시 볼륨도 함께 삭제
docker rm -v -f 컨테이너명
→ -v옵션을 통해 가능
3. Docker bind mounts(바인드 마운트) 방식
- 바인드 마운트 호스트 시스템의 아무 곳에나 저장 가능.
- 언제든지 수정 가능
- volume에 비해 제한적인 기능
- 호스트 시스템의 파일 or 디렉터리가 컨테이너에 마운트 됨.
- 파일 또는 디렉터리는 호스트 시스템의 절대 경로를 참조
4. Docker 이미지와 레이어
이미지는 여러 개의 읽기 전용 레이어로 구성
ㄹ ㅔ 이어 개념 잘 모루겟다
https://hyeo-noo.tistory.com/340
?? 잘 모르겠다..