도커에서 컨테이너를 삭제하면 컨테이너에서 생성된 데이터도 같이 삭제된다.(그래서 업데이트 할 때 주의해야한다고 했음)
도커에서 데이터를 유지하는 방법 named volume을 적용해보자!
1. named volume - mongdb 이용
named volume: 도커에서 유지되는 데이터를 관리해야 할 때 편리하게 이름으로 사용할 수 있게 만든 volume
1) named volume 생성
// volume 생성
docker volume create 볼륨명
// volume 정보 보기
docker volume inspect 볼륨명
- Mountpoint: 데이터 저장 경로
2) mongodb 실행
docker run -- name mongo_db -p 27017:27017 -d mongo
3) 실행 중인 mongodb 컨테이너를 중지하고, 컨테이너를 지움
4) mongodb에 named volume 연결
docker run -p {호스트 포트}:{컨테이너 포트} -v {볼륨명}:{저장 폴더 경로} {사용할 디비 이미지명}
5) 코드 업데이트
2. named volume - host 디렉토리
호스트 디렉토리를 마운트해서 데이터 볼륨을 사용하는 방법
MySQL의 경우 /var/lib/mysql 디렉토리에 데이터베이스 정보가 담기므로 호스트의 특정 디렉토리에 연결하면 됨
-v 옵션을 이용해서 /my/own/datadir 디렉토리를 /var/lib/mysql로 마운트
* 마운트(mount): 파일 시스템을 지정된 위치(마운트 위치)에서 사용 가능하게 만들도록 경로를 연결시켜 주는 것( /my/own/datadir 디렉토리를 /var/lib/mysql에 연결시켜서 /my/own/datadir 저장되게 함)
# before
docker run -d -p 3306:3306 \
-e MYSQL_ALLOW_EMPTY_PASSWORD=true \
--name mysql \
mysql:8.0
# after
docker run -d -p 3306:3306 \
-e MYSQL_ALLOW_EMPTY_PASSWORD=true \
--name mysql \
-v /my/own/datadir:/var/lib/mysql \ # <- volume mount
mysql:8.0
'Docker' 카테고리의 다른 글
도커(docker) 컨테이너 리소스 사용량 제한하기 (0) | 2022.12.16 |
---|---|
[Docker] 도커(docker) 편리하게 실행하기 - Docker-compose (0) | 2022.12.15 |
[Docker] 여러개의 컨테이너 연결하기 - Docker network (0) | 2022.12.15 |
[Docker] 내가 만든 애플리케이션 도커로 실행하기, 이미지 공유하기 (0) | 2022.12.15 |
도커(Docker) 개념 잡기 (0) | 2022.12.14 |