cmd에서 docker pull mongo 또는
도커 데스크탑에서 mongoDB를 검색합니다.
가장 첫번째에 있는 10억번 이상 다운로드된 이미지를 Pull 받습니다.
이 후 원하는 이름을 설정해주고 run 시킵니다.
docker run --name mongo -d -v C:/Program_Files/Docker/Docker/data/mongo:/data/db -v C:/Program_Files/Docker/Docker/data/mongo_config:/data/configdb -p 27017:27017 mongo
<-v C:\Program_Files\Docker\Docker\data\mongo:/data/db -v C:\Program_Files\Docker\Docker\data\mongo_config:/data/configdb> 부분은 아래에서 설정하겠습니다.
포트 옵션인 -p의 인자는 호스트포트:컨테이너 포트입니다. 호스트 포트는 내 pc의 포트로, 접속할 때 사용하므로 변경해도 됩니다. -p 2300:27017 이렇게 입력했다면, 실제로 접속할 때 사용하는 포트는 2300이 되는 것입니다.
-d 옵션은 컨테이너를 백그라운드로 실행하고 컨테이너ID를 출력하는 옵션입니다.
docker ps 명령어를 통해 실행중인 컨테이너 프로세스를 확인해보면 잘 동작하고 있습니다.
도커 데스크탑에서도 Runnig을 확인 할 수 있습니다.
만약에 위의 run 명령어에서 -v 를 빼고 docker run --name mongo -d -p 27017:27017 mongo 와 같이 입력하면 아래와 같이 기본적으로 Mount 된 두개의 디렉토리를 볼 수 있습니다.
/data/db
몽고DB의 데이터가 저장되는 컨테이너 내부의 디렉토리입니다.
/data/configdb
몽고DB의 config 데이터를 저장하는 컨테이너 디렉토리입니다.
Replica 설정 및 Sharding 설정과 같은 설정 정보도 포함됩니다.
컨테이너를 단순히 중지하고 실행하는 docker stop/start 명령어는 위 두 디렉토리의 데이터가 삭제되지 않습니다.
하지만 컨테이너를 삭제하게 되면 저장된 데이터도 삭제됩니다.
의도치 않게 데이터가 삭제되어 복구하지 못하는 상황을 대비하여 두 디렉토리를 로컬 디렉터리(내 pc의 임의 폴더)와 마운트하여 방지할 수 있습니다. 그래서 저는 C:/Program_Files/Docker/Docker 아래에 /data 폴더를 만들고 mongo, mongo_config 폴더를 각각 만들어주었습니다.
그래서 docker run 명령어 수행 시에 -v C:\Program_Files\Docker\Docker\data\mongo:/data/db -v C:\Program_Files\Docker\Docker\data\mongo_config:/data/configdb 를 추가하여 제 PC의 폴더와 컨테이너의 디렉토리를 연결해 주었습니다. 이제 몽고DB를 사용하면서 생성된 데이터가 제 PC에도 저장될 것입니다.
도커 데스크탑에서도 확인할 수 있습니다.
참고 사이트
https://blog.projectdh.link/100
https://stackoverflow.com/questions/70081241/where-does-docker-stores-my-mongodb-data
'DB' 카테고리의 다른 글
[postgreSQL] 포스트그레스 기본 명령어 실습해보기 (0) | 2024.01.09 |
---|---|
[postgreSQL] 포스트그레스 설치하기(windows) (0) | 2024.01.08 |
[DB] 서버와 DB가 Connection을 구성하는 방법 (0) | 2023.05.10 |
[DB] ORM, 장단점, 종류 질문, 답변 (0) | 2023.05.10 |
[DB] 트랜잭션, Lock, ACID, 격리 수준 질문, 답변 (0) | 2023.05.10 |
댓글