[ 기타 ]/Trouble Shooting

[트러블슈팅/docker/mongodb] mongo: not found 에러 / docker에 mongodb 이미지 띄우고 실행하기

2023. 12. 11. 18:02
목차
  1. Docker를 사용하여 MongoDB 사용해 보기
  2. docker-compose.yml
  3. mongo: not found 
  4. 해결법
  5. 해결 과정
  6. 성찰

Docker를 사용하여 MongoDB 사용해 보기


현재 진행 중인 프로젝트에서 일대일 DM 기능과 단체톡을 구현해야 하는데,  RDBMS를 사용해도 되지만, NoSQL을 사용해 보자는 의견이 나와서 MongoDB를 사용해보려고 했다.

MongoDB를 docker-compose.yml 파일을 이용해 docker에 자동으로 띄우고 사용해보려고 했는데, 그 과정에서 매우 많은 시행착오를 겪었다.

그 이유는.. mongoDB 버전이 최신화되며 명령어가 일부 변경되었기 때문이었다. 

그 과정을 기록하고자 이 글을 쓴다.

 

문제점을 바로 보시려면  "mongo: not found" , "해결법" 부분을 봐주세요!

 

docker-compose.yml

아래와 같이 docker-compose 파일에 mongodb 관련 내용을 추가하고 실행하면 정상적으로 docker container에 image가 띄워지는 것을 확인할 수 있다.

  mongodb:
    image: mongo
    container_name: mongodb
    ports:
      - 27017:27017
    volumes:
      - data:/data
    environment:
      - MONGO_INITDB_ROOT_USERNAME=rootuser
      - MONGO_INITDB_ROOT_PASSWORD=rootpass
      - MONGO_INITDB_DATABASE=usports
    networks:
      - backend

volumes:
  data: {}

networks:
  backend:
    name: backend
    driver: bridge

Docker container mongodb

 

mongo: not found 

대부분의 글에서 "mongo" 명령어를 이용해서 mongoDB를 시작할 수 있다고 하였다.

그러나.. 왜인지 모르게 아래 이미지와 같이 mongo 명령어를 찾을 수 없다는 에러가 발생하였다.

mongo: not found

해결법

아주 간단하다.

"mongo" 명령어는 mongoDB.6.0 버전부터 제거되고, "mongosh"로 변경되었다고 한다.

아래 stackoverflow 글에서 발견했다.

https://stackoverflow.com/questions/73582703/mongo-command-not-found-on-mongodb-6-0-docker-container

위의 이미지에서 mongo 명령어는 동작하지 않고, mongosh 명령어로 mongodb를 시작할 수 있는 것을 볼 수 있다.

 

해결 과정

이번에 docker를 사용해 보는 것도 거의 처음이다. 그래서 docker의 기능에 대한 확신이 없었다. 그래서 문제는 "mongo" 명령어가 존재하지 않는다는 것인데, 이 부분을 생각하지 못하고 다른 것들에서 문제를 찾았던 것 같다.

 

우선 내가 작성한 docker-compose.yml에 문제가 있는지 여러 번 확인해 봤지만, 문제가 없었다.

 

그다음엔, docker에 mongodb를 직접 pull 해보기로 했다. 아래 글에 잘 정리되어 있어서 첨부한다.

https://poiemaweb.com/docker-mongodb

 

일단 mongoDB를 사용해 보고 Spring project에서 사용법을 익히는 게 우선이었기 때문에 로컬에서 직접 mongoDB를 설치해 보기로 마음먹고, 딱 30분만 더 시도해 보고 안되면 로컬에 직접 설치해 보자..라는 생각을 했다.

 

그러다 위의 stackoverflow에서 mongoDB 명령어가 변경되었단 사실을 알게 되었다.

 

성찰

이 문제는 일단 갑자기 뜬금없이 mongo: not found라는 에러가 발생한 것부터 시작되었다.

이 에러가 발생했을 때 바로 구글에 해당 내용을 검색했으면 금방 해결했을 것 같다. 그러나 docker 기술에 대한 이해가 부족했기 때문에 다른 곳에서 문제를 찾으려다가 많은 시간을 소요했다. 다음부턴 조금 더 침착하게 가장 명확한 문제부터 알아보아야겠단 생각을 했다.

 

어제는 인생 처음으로 aws instance를 생성하고 Spring Boot Project를 배포해 보며 수많은 시행착오를 겪었다.
그리고 오늘은 docker를 이용하여 mongoDB 사용을 시작하는 과정에서부터 수많은 시행착오를 겪었다.
이런 시행착오들을 겪으며 점점 해결 능력이 좋아지지 않을까라는 생각이 든다.

그리고.. 파일 시스템을 기반으로 동작하는 리눅스 시스템에 대한 이해와 리눅스 명령어들이 단 이틀 사이에 많이 향상된 것 같다 ㅋㅋㅋ...
저작자표시 (새창열림)

'[ 기타 ] > Trouble Shooting' 카테고리의 다른 글

[쿼리 튜닝] JPA와 MyBatis를 혼용하여 쿼리 수를 줄여보자  (0) 2024.08.07
[트러블슈팅/swagger] DTO에서 inner class 사용 시 swagger에서 인식하지 못하는 오류 해결  (0) 2023.12.12
[JPA, Test, Mockito] repository.save() test 시 오류 발생 org.mockito.exceptions.misusing.PotentialStubbingProblem 문제 해결  (0) 2023.12.03
[오류 해결] Spring boot - Swagger, Redisson 적용 시 버전 conflict 문제 "Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException"  (0) 2023.11.06
[IntelliJ] 인코딩(Encoding) 설정 / 한글 깨짐 문제 해결  (1) 2023.07.29
  1. Docker를 사용하여 MongoDB 사용해 보기
  2. docker-compose.yml
  3. mongo: not found 
  4. 해결법
  5. 해결 과정
  6. 성찰
'[ 기타 ]/Trouble Shooting' 카테고리의 다른 글
  • [쿼리 튜닝] JPA와 MyBatis를 혼용하여 쿼리 수를 줄여보자
  • [트러블슈팅/swagger] DTO에서 inner class 사용 시 swagger에서 인식하지 못하는 오류 해결
  • [JPA, Test, Mockito] repository.save() test 시 오류 발생 org.mockito.exceptions.misusing.PotentialStubbingProblem 문제 해결
  • [오류 해결] Spring boot - Swagger, Redisson 적용 시 버전 conflict 문제 "Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException"
HSRyuuu
HSRyuuu
Web Backend Developer happyhsryu
HSRyuuu
HS_dev_log
HSRyuuu
전체
오늘
어제
  • 전체 글 보기 (235)
    • Java (25)
    • Spring (29)
    • JPA & QueryDSL (13)
    • Database (17)
    • 자료구조 & 알고리즘 (30)
    • DevOps (10)
    • [ Computer Science ] (47)
      • Web & Network (14)
      • 프로그래밍 이론 (11)
      • 운영체제 (3)
      • 데이터베이스 이론 (5)
      • Linux 리눅스 (7)
    • [ Frontend ] (17)
      • Vue.js & Nuxt.js (9)
      • JSP_Thymeleaf (7)
    • [ 기타 ] (47)
      • 오픈소스 라이브러리 (5)
      • 코딩테스트 (13)
      • Trouble Shooting (7)
      • Tech Interview (6)
      • Book Review (9)
      • 끄적끄적... (5)
      • 개인 프로젝트 (2)

블로그 메뉴

  • 홈
  • 태그
  • github

공지사항

  • GitHub
  • 공부한 내용을 정리하고 기록하는 블로그 입니다.

인기 글

태그

  • Linux
  • springsecurity
  • Nuxt3
  • Database
  • Redis
  • Redisson
  • 제로베이스
  • JPA
  • mybatis
  • SpringBoot
  • 개발자
  • HTTP
  • 백엔드스쿨
  • 트랜잭션
  • Spring
  • 백엔드공부
  • SQL
  • 백엔드
  • Java
  • vue3
  • TechInterview
  • 자료구조
  • MySQL
  • 리눅스
  • 클린코드
  • cleancode
  • 백준
  • 백엔드기술면접
  • 기술면접
  • web

최근 댓글

최근 글

hELLO · Designed By 정상우.
HSRyuuu
[트러블슈팅/docker/mongodb] mongo: not found 에러 / docker에 mongodb 이미지 띄우고 실행하기
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.