본문 바로가기
DB

도커를 이용한 mongDB 설치하기

by 오렌지마끼야또 2023. 9. 21.
728x90
반응형

 

 

 

 

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

 

 

 

 

 

 

728x90
반응형

댓글