DB

도커를 이용한 mongDB 설치하기

오렌지마끼야또 2023. 9. 21. 13:15
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
반응형