도커 볼륨

WAS·2025년 5월 13일
0

도커

목록 보기
3/6

컨테이너 를 띄우고, 이 프로그램이 기능이 추가되면 기존 컨테이너 에서 수정하지 않고
새로운 컨테이너 를 만들어서 통째로 바꾸는 것이 효율적이다

하지만 기존 컨테이너 를 새로운 컨테이너 로 교체하면, 기존 내부에 있던 데이터(파일)도 같이 삭제된다
ex) MySql 컨테이너를 새로운 컨테이너로 교체하면 MySql안에 있는 데이터들도 다 삭제된다

이러한 문제점을 방지하기 위해서 볼륨 을 활용한다

도커 볼륨

  • 도커 컨테이너에서 데이터를 영속적으로 저장하기 위한 방법
  • 컨테이너의 저장공간을 사용하지 않고, 호스트 컴퓨터의 일부 저장공간을 공유해서 사용함
  • 컨테이너를 새로 만들어도 호스트 컴퓨터의 저장공간에는 데이터가 남아있음

볼륨 만드는 방법
docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -v /Users/jaeseong/Documents/Develop/docker-mysql/mysql_data:/var/lib/mysql -d mysql

실제로 MYSQL 컨테이너 안에는 DB에 저장되어있는 데이터값이 /var/lib/mysql 에 저장되어 있음
호스트컴퓨터의 mysql_data 폴더를 공유함

MYSQL 컨테이너를 생성하면 데이터들이 위 경로로 저장되어서 비밀번호를 바꾸고 새로 컨테이너를 만들어도 초기 비밀번호에서 바뀌지 않는다 (덮어 씌어지지 않는다)
-> 볼륨 으로 설정해둔 폴더에 이미 비밀번호 정보가 저장되버렸기 때문

여기서 조심해야할 것은 mysql_data 디렉터리를 미리 만들어 놓으면 안된다 !!!
그래야 처음 실행시킬 때, mysql 내부에 있는 /var/lib/mysql 파일들을 호스트 컴퓨터로 공유 가능

하지만 mysql_data 를 미리 만든 경우, 새로 만든 mysql 컨테이너안의 /var/lib/mysql 파일을들
전부 삭제한 후, 기존 호스트의 mysql_data 로 덮어씌운다

💡 powershell 에서는 -rm -rf 가 안먹어서 -rm -r fo 를 사용해야함
그래서 편하게 사용하려면 git bash 설치해서 사용하는것이 좋음
복사: ctrl + insert
붙여넣기: shift + insert

profile
우측 상단 햇님모양 클릭하셔서 무조건 야간모드로 봐주세요!!

0개의 댓글