[개인] DLD Project (6) - Docker를 이용한 MongoDB 설치 & 서버 연결 🐋
틀린 내용이 있을 수 있습니다.
발견하시면 말씀 부탁드립니다! 🙇
읽어보면 좋을 내용
왜 굳이 도커를 사용해야할까?
왜 굳이 도커(컨테이너)를 써야 하나요? - 컨테이너를 사용해야 하는 이유
컨테이너는 서버 애플리케이션을 배포하고 서버를 운영하는 표준적인 기술이 되어가고 있습니다. 하지만 처음 사용해본다면 그 장점이 잘 와닿지 않을 수도 있습니다. 왜 굳이 도커 컨테이너를
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명 입력' }),
],
})
참고 자료
- https://brunch.co.kr/@hopeless/10
- https://poiemaweb.com/docker-mongodb
- https://www.44bits.io/ko/post/why-should-i-use-docker-container#%EB%93%A4%EC%96%B4%EA%B0%80%EB%A9%B0-%EC%99%9C-%EB%8F%84%EC%BB%A4docker%EB%A5%BC-%EC%8D%A8%EC%95%BC%ED%95%98%EB%82%98%EC%9A%94
- https://docs.nestjs.com/techniques/mongodb