Section3 : 데이터 관리 및 볼륨으로 작업하기

tein·2022년 6월 27일
0

도커 & 쿠버네티스

목록 보기
5/14

🎈컨테이너에 저장된 데이터

  • 컨테이너나 이미지와 로컬 파일 시스템간에는 연결되어 있지 않다.
  • 로컬 폴더와 파일의 스냅샷을 복사할 수 있지만 이것이 전부다.
  • 도커 이미지로 컨테이너 생성시 이미지는 읽기 전용
  • 컨테이너의 변경 사항만을 별도 저장
  • 생성된 이미지는 변경되지 않음
  • 컨테이너 삭제시 저장된 데이터도 같이 삭제됨
    -> 컨테이너를 삭제하면 데이터를 복구 할 수 없음!!
  • 데이터를 다른 프로세스에서 사용하거나, 옮기기 어려움

🎈데이터를 영구적으로 저장하기 위한 방법 : Volume 활용

  • 볼륨은 호스트 머신의 폴더
    (컨테이너나 이미지에 있는게 아님)

  • 도커가 인식하는 호스트 머신의 폴더로, 도커 컨테이너 내부의 폴더에 매핑됨

  • COPY 명령어와 차이

    • COPY : 지속적인 관계/연결 X, 이미지에 복사되는 일회성 스냅샷
    • 볼륨 : 컨테이너 내부의 폴더를 호스트 머신상의 컨테이너 외부 폴더에 연결 가능. 변경 사항 반영 가능.
  • 사용처

    • 컨테이너끼리 데이터 공유할 때 사용
    • 데이터를 컨테이너가 아닌 호스트에 저장할 때 사용
    • 여러 개의 도커 컨테이너가 하나의 저장 공간을 공유해서 데이터를 읽거나 쓸 때 사용
  • 컨테이너가 종료된 경우에도 지속
  • 컨테이너가 제거되어도 볼륨 유지(== 데이터 유지)

도커볼륨 이미지 출처 : https://docs.docker.com/storage/volumes


🎈바인드 마운트

  • 볼륨과 유사하지만 볼륨에 비해 제한된 기능

  • 도커에 의해 관리되는 볼륨의 위치는 알 수 없음

  • 볼륨은 데이터 편집 실제론 불가능

  • 바인드 마운트는 위치를 알 수 있음

    • 호스트 머신 상에 매핑될 컨테이너 경로를 설정하기 때문
  • 따라서 볼륨에 쓰기/읽기 가능

  • 소스 코드를 바인드 마운트에 넣기 가능
    -> 컨테이너가 인식하여 소스 코드를 바인딩 마운트에서 복사

  • 영구적이고 편집 가능한 데이터에 적합


도커바인드마운트 이미지 출처 : https://docs.docker.com/storage/bind-mounts


🎈기타 정리

  • 콜론 앞에 로컬 머신 경로가 붙으면 -> 바인드 마운트
  • 콜론 앞에 경로가 아닌 것이 붙으면 -> 볼륨 이름으로 취급, 명명된 볼륨이 됨.


아직 다 정리한건 아니지만 계속 이것만 붙잡고 있을 수 없기에
이만큼 정리해두고
뒤에 조금씩 추가해야겠다..
섹션3은 좀 어렵네ㅠ

profile
내 시행착오 모음집

0개의 댓글