프로젝트

[개인] DLD Project (6) - Docker를 이용한 MongoDB 설치 & 서버 연결 🐋

jaee 2023. 2. 24. 11:47

 
틀린 내용이 있을 수 있습니다.
발견하시면 말씀 부탁드립니다! 🙇


 

읽어보면 좋을 내용

왜 굳이 도커를 사용해야할까?
 

왜 굳이 도커(컨테이너)를 써야 하나요? - 컨테이너를 사용해야 하는 이유

컨테이너는 서버 애플리케이션을 배포하고 서버를 운영하는 표준적인 기술이 되어가고 있습니다. 하지만 처음 사용해본다면 그 장점이 잘 와닿지 않을 수도 있습니다. 왜 굳이 도커 컨테이너를

www.44bits.io

 

Docker compose로 컨테이너 생성하기
 

[MongoDB] DB 털림 (랜섬웨어)

발견 아침에 테스트 앱에서 데이터가 보이지 않았다. docker 컨테이너 문제인가 싶었으나, 확인해 보니 mongodb 컬렉션이 사라졌다. mongo db log를 확인해 보았다. dropDatabase..? $ sudo docker logs mongodb -t --s

jaejade.tistory.com

 


 

1. 도커 설치

https://docs.docker.com/engine/install/ubuntu/

 

Install Docker Engine on Ubuntu

 

docs.docker.com

 
 

2. 도커 이미지(MongoDB) 받기

$ docker pull mongo

 
 

3. 도커 이미지 확인

$ sudo docker images

 
 

4. 도커 이미지 기반으로 컨테이너 생성 및 실행

sudo docker run -d --name mongodb -p 27017:27017 -v ~/dockerdata:/data/db mongo

 
 

5. 도커 컨테이너 접속해서 MongoDB 접속 (패스해도 됨)

도커 컨테이너가 정상적으로 실행중인지 확인

sudo docker ps

sudo docker exec -it mongodb /bin/bash

 
mongodb 6.0 버전부터 mongo shell이 없어졌다. 6.0 버전 이상이라면 mongo 대신 mongosh 입력해서 몽고디비 접속하자.

# mongosh

https://www.mongodb.com/docs/manual/release-notes/6.0-compatibility/#legacy-mongo-shell-removed

 

Compatibility Changes in MongoDB 6.0 — MongoDB Manual

Docs Home → MongoDB Manual This page describes changes introduced in MongoDB 6.0 that can affect compatibility with older versions of MongoDB.MongoDB 6.0 is a Major Release, which means that it is supported for both MongoDB Atlas and on-premises deployme

www.mongodb.com

 
 
6. 서버와 도커 컨테이너로 띄운 MongoDB 연결

 
1. EC2 서버 보안 그룹 → 인바운드 규칙 편집

 
2. app.module.ts에서 DB 연결하는 부분 추가

@Module({
  imports: [
    ...,
    MongooseModule.forRoot('mongodb://<EC2 Public IP>:27017', 
    { dbName: 'DB명 입력' }),
  ],
})

 
 
 
 


참고 자료