컨테이너
를 띄우고, 이 프로그램이 기능이 추가되면 기존 컨테이너
에서 수정하지 않고
새로운 컨테이너
를 만들어서 통째로 바꾸는 것이 효율적이다
하지만 기존 컨테이너
를 새로운 컨테이너
로 교체하면, 기존 내부에 있던 데이터(파일)도 같이 삭제된다
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