인프런 커뮤니티 질문&답변

s-june.lee님의 프로필 이미지

작성한 질문수

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

section23. 04-06 Mongoose 활용편 질문입니다.

해결된 질문

작성

·

260

·

수정됨

0

안녕하세요.

MongoDB compass로 mongodb://localhost:27017로 접속시, 네임레졸루션으로 설정한 mydocker가 데이터베이스가 보이지 않습니다.

어떻게 하면 MongoDB compass에서 mydocker를 볼 수 있게 할 수 있는지 알려주시면 감사하겠습니다.

 

<네임레졸루션으로 설정한 mydocker>

mongoose
  .connect("mongodb://my-database:27017/mydocker")
  .then(() => console.log("Connected!"))
  .catch(() => console.log("Connection Failed"));

app.listen(4000, () => {
  console.log("Back-end API is Open Now");
});



CLI로 MongoDB id "ce236b58a149"로 접속하여 확인하여 보면 mydocker가 확이, Postman으로 확인하여도 POST GET가 잘 됩니다만, MongoDB compass로 접속이 되지 않습니다.

<CLI로 mydocker 데이터베이스 확인>

hyunminyu@HYUNMINnoAir class % docker ps                            
CONTAINER ID   IMAGE                COMMAND                  CREATED          STATUS          PORTS                      NAMES
ce236b58a149   mongo:5              "docker-entrypoint.s…"   12 seconds ago   Up 11 seconds   0.0.0.0:27017->27017/tcp   backend-my-database-1
e3f0f648c4c3   backend-my-backend   "docker-entrypoint.s…"   21 minutes ago   Up 11 seconds   0.0.0.0:4000->4000/tcp     backend-my-backend-1
hyunminyu@HYUNMINnoAir class % docker exec -it ce236b58a149 /bin/bash
root@ce236b58a149:/# mongo
MongoDB shell version v5.0.21
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("181ced5f-7b45-4fd5-bb08-c90762778e68") }
MongoDB server version: 5.0.21
================
Warning: the "mongo" shell has been superseded by "mongosh",
which delivers improved usability and compatibility.The "mongo" shell has been deprecated and will be removed in
an upcoming release.
For installation instructions, see
https://docs.mongodb.com/mongodb-shell/install/
================
---
The server generated these startup warnings when booting: 
        2023-09-22T15:44:38.346+00:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem
        2023-09-22T15:44:39.191+00:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
---
> show databases
admin     0.000GB
config    0.000GB
local     0.000GB
mydocker  0.000GB
> use mydocker
switched to db mydocker
> show collections
boards


한가지 의심스러운 점이 있습니다.

docker-compose.yaml에서 아래의 27017:27017 포트포워딩을 주석처리하여 docker up을해도, MongoDB compass로 mongodb://localhost:27017로 접속이 되는점이 혹시 문제 원인과 관련이 있지 않을까 생각이 듭니다.

    ports:
      - 27017:27017

 

감사합니다.

답변 2

0

노원두님의 프로필 이미지
노원두
지식공유자

안녕하세요! s-june님!

먼저, mongodb는 크게 2개가 존재할 수 있답니다!

  1. 내 컴퓨터에서 실행중인 mongodb

  2. 도커 컴퓨터 안에서 실행중인 mongodb

여기서, 도커 컴퓨터 안에서 실행중인 mongodb에 접속하시기 위해서는 아래의 2가지 순서를 거쳐요!

  1. 내 컴퓨터에서 도커 컴퓨터 안에 들어가기

  2. 도커 컴퓨터 안에서 실행중인 mongodb에 접속하기

여기서, 내 컴퓨터에서 도커 컴퓨터 안에 들어가기 위해서는 포트포워딩이 되어있어야 한답니다!
다시말해, 아래의 설정이 되어있으셔야 겠죠?!^^
- ports
27017:27017

(* 쌤! 포트포워딩 없이도 네임리졸루션으로 접속 가능했잖아요!
=> 이건, 도커컴포즈로 묶여있는 도커들 사이에서 가능한 것이예요! 예를들면, node도커 => mongodb도커
지금은 도커 밖의 내 컴퓨터에 존재하는 mongodb-compass가 도커 안으로 들어가야 하기 때문에, 포트포워딩이 필요합니다!)

 

이러한 상황아래, 포트포워딩이 없이 접속이 되셨다면, 현재 내 컴퓨터(local)에 mongodb가 실행되고 있으며, 이 mongodb에 접속이 되셨다고 보면 될 것 같네요!^^

만약, 도커 내부의 mongodb에 접속을 원하신다면, 1.내 컴퓨터의 mongodb를 종료해 주시고, 2.docker의 설정에 포트포워딩 27017:27017을 추가해 주신 이후에 다시 한 번 접속해 보세요!

0

안녕하세요, 인프런 AI 인턴이에요. MongoDB Compass에서 mydocker 데이터베이스를 볼 수 없는 문제에 대해 안내해드릴게요.

우선, MongoDB Compass에서 데이터베이스를 볼 수 없는 경우 다음 사항을 확인해보세요.

  1. 네트워크 연결 확인: MongoDB Compass가 localhost(127.0.0.1)로 접속하고 있는지 확인해주세요. MongoDB Compass는 로컬에서 실행 중인 MongoDB 서버에 연결되어야 합니다.

  2. 인증 정보 확인: MongoDB Compass에 사용하는 인증 정보가 올바른지 확인해주세요. 예를 들어, 사용자 이름과 비밀번호가 mydocker 데이터베이스에 접근할 수 있는 권한을 가지고 있는지 확인해보세요.

  3. 포트 번호 확인: MongoDB Compass가 사용하는 포트 번호가 27017인지 확인해주세요. 컨테이너 실행 시 포트 포워딩 설정을 하셨다면, 호스트 머신의 27017 포트로 접속해야 합니다.

위의 사항들을 확인해보시고 문제가 지속된다면, MongoDB Compass의 버전이나 설정에 따라 문제가 발생할 수 있으니, MongoDB Compass의 공식 문서나 커뮤니티를 참고해서 해결 방법을 찾아보시는 것도 좋아요.

더 상세한 도움이 필요하시면, MongoDB 커뮤니티나 고객센터에 문의해보시는 것도 좋을 것 같아요. 감사합니다!