whdudev

[Docker]MongoDB를 도커 환경에 구축하고 초기 설정하기 본문

도커 쿠버네티스

[Docker]MongoDB를 도커 환경에 구축하고 초기 설정하기

whdudev 2025. 3. 30. 15:52

 

 도커에서 DB 설정하기 

도커는 기존에 설치 및 설정되어있음 ->
볼륨 설정 -> MognoDB 컨테이너 실행(다운,아이디 패스워드 설정) -> 몽고 쉘 실행해보기 -> 사용할 데이터베이스 선택 

 

 

1.볼륨을 만들자!

 

docker는 개별적인 가상화 환경인 컨테이너에서 작업을 진행하기에 작업하는 모든 데이터는 컨테이너 내부에만 존재하게 되는데요.

-> 이때 컨테이너가 삭제되어도 작업한 데이터를 유지하고 싶을 것이다. 이때 사용한은게 볼륨 

볼륨이란? :  볼륨은 한마디로 컨테이너 내부의 데이터를 외부로 링크를 걸어주는 기능이다.

 

docker volume create [생성할 볼륨 이름]

docker volume create mongodb-data 명령어로 생성

 

 

2.MongoDB 컨테이너 실행 (이미지 가져오기, 루트계정 아이디 비번 설정, 볼륨 연결)

 

  • 최신 MongoDB 이미지를 사용해 컨테이너 실행
  • 포트번호 연결 (Local 27017 -> 컨테이너 27017 연결)
  • 루트 계정 설정 adadadadminID : adadadadmin12PW (가상번호임)
  • mongodb-data라는 볼륨을 /data/db에 연결해서 데이터 영구 저장 
docker run -d \
  --name mongodb-container \
  -p 27017:27017 \
  -v mongodb-data:/data/db \
  -e MONGO_INITDB_ROOT_USERNAME=adadadadminID \
  -e MONGO_INITDB_ROOT_PASSWORD=adadadadmin12PW \
  mongo:latest

 

3.컨테이너 안에 들어가서 몽고 쉘(mongosh) 을 실행하기

 docker exec -it mongodb-container mongosh -u adadadadminID -p adadadadmin12PW

 

4. 사용 DB 설정 및 확인 

use auctifyDatabase

db

 

 

 

✅포트번호 연결이 필요한 이유 

내 컴퓨터 안에 가상 컴퓨터(Docker 컨테이너)가 돌아간다고 생각해보자! 

 

가상 컴퓨터 내에서 MognoDB 포트 번호는 존재하겠지만 우리 로컬에서는 연결할 방법이 없네 -> 포트번호 매핑 

참고 : 모든 컨테이너는 격리돼 있어서 서로 간섭 없이 실행됨 

 

현재 구성한 시스템에서 -p 27017:27017

 

  • 왼쪽(호스트): 내 컴퓨터의 27017 포트
  • 오른쪽(컨테이너): Docker 내부 MongoDB가 사용하는 27017 포트

 

스프링에서 연결할 경우 

 

스프링 애플리케이션과 연결후에도 실행해보니 잘 동작한다 ㅎㅎ