IT/Linux

[MongoDB/Linux] MongoDB의 특징, Docker로 설치 및 Compass 접속

땅일단 2023. 9. 8. 13:57
 

[Docker] 도커의 개념, linux에서 도커 설치

1. 도커(Docker)란? 컨테이너 기반의 가상화(하나의 하드웨어를 여러 개의 가상 머신으로 분할하는 것) 플랫폼. 프로그램 실행에 필요한 모든 프로그램 파일과 환경들을 갖춘 이미지(Image), 그리고

doringri.tistory.com

 

 

[Docker] 도커 이미지(Image) 다운로드 및 컨테이너(Container) 생성/실행/삭제하기(feat. SonarQube)

[Docker] 도커의 개념, linux에서 도커 설치 1. 도커(Docker)란? 컨테이너 기반의 가상화(하나의 하드웨어를 여러 개의 가상 머신으로 분할하는 것) 플랫폼. 프로그램 실행에 필요한 모든 프로그램 파일

doringri.tistory.com

도커에 대한 설명은 위 포스트들을 확인하시면 됩니다.

 

MongoDB NoSQL 중 하나입니다. 흔히 사용되는 Oracle, MySQL 같은 RDBMS보다 유연하게 데이터를 기록할 수 있다는 것이 장점입니다.

 

1. 특징

특징은 다음과 같습니다.

  • JSON 구조로 데이터를 저장함
  • RDBMS에 비해 속도가 빠름
  • 데이터 구조에 일관성이 없음(스키마 변경에 유연함)
  • 테이블 간 연관 관계가 존재하지 않음(join 없음)
  • 메모리 사용량이 크고, 메모리가 부족할 경우 속도가 매우 느려짐
  • Redis에 비해 광범위한 쿼리 기능 제공(count, distinct, group 등의 집계 함수, pagination 기능 등)

 

이러한 특징 때문에, 같은 NoSQL인 Redis가 빠른 속도, 단순한 구조 등의 특징으로 인해 세션 저장 용도로 많이 쓰이는 반면 MongoDB는 Redis보단 살짝 느리므로 로그 저장 용도로 많이 쓰인다고 합니다.

 

또한 마치 RDBMS같은 구조가 갖춰져 있다는 것도 특징입니다.

RDBMS에 익숙하신 분들은 다음 그림을 참고하세요.

 

 

2. 설치

docker pull mongo:latest

위 명령어로 도커허브에서 최신 버전의 MongoDB 이미지를 다운받습니다.

 

docker run -d --name mongo -p 27017:27017 mongo:latest
firewall-cmd --permanent --zone=public --add-port=27017/tcp
firewall-cmd --reload

컨테이너를 만들어서 돌립니다. 호스트 포트(왼쪽)는 아무거나 해도 상관없지만 컨테이너 포트(오른쪽)는 27017로 설정해줍니다.

그리고 나서 외부에서 접근할 수 있도록 호스트 포트인 27017의 포트를 열어줍니다.

 

docker ps

위 명령어로 컨테이너 목록을 확인하여 잘 돌아가고 있다면

 

docker exec -it mongo bash

다음 명령어를 입력하여 컨테이너 내부에 접근합니다.

컨테이너 내부에서 mongosh 를 입력하면 MongoDB를 사용할 수 있게 됩니다.

 

 

3. Compass 접속

GUI로 MongoDB를 관리할 수 있게 해주는 툴입니다.

 

Try MongoDB Tools - Download Free Here

Free download for MongoDB tools to do more with your database. MongoDB Shell, Compass, CLI for Cloud, BI Connector and other database tools available.

www.mongodb.com

공식 홈페이지에서 Compass를 다운받습니다.

 

MongoDB가 설치된 서버의 URI를 입력하고 Connect를 누르면 연결됩니다.

로딩만 계속되고 접속이 안 되면 주소를 확인하고, 주소가 정확하다면 docker restart [컨테이너 이름 or ID] 로 컨테이너를 재실행합니다.