
MongoDB는 오픈소스 비관계형 데이터베이스 관리 시스템(DMBS)으로, 테이블과 행 대신 유연한 문서를 활용해 다양한 데이터 형식을 처리하고 저장한다.
NoSQL데이터베이스 솔루션인MongoDB는 관계형 데이터베이스 관리 시스템(RDBMS)을 필요로 하지 않으므로, 사용자가 다변량 데이터 유형을 손쉽게 저장하고 쿼리할 수 있는 탄력적인 데이터 저장 모델을 제공한다.
$ mkdir {프로젝트명}
$ cd {프로젝트명}
$ mkdir docker
$ cd docker
$ mkdir data_for_mongodb
version: '3.9' # Docker Compose 파일의 버전을 지정
services:
dev-mongo:
image: mongo:7.0.12 # MongoDB 버전 7.0.12 이미지를 사용한다.
container_name: mongo # 컨테이너 이름을 'mongo'로 설정
ports: # 호스트와 컨테이너 포트 매핑
- "27017:27017"
environment: # 환경 변수 설정 및 몽고DB 관리자 및 시간대 설정
MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} # MongoDB 관리자 계정 사용자 이름을 환경 변수로 설정
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} # MongoDB 관리자 계정 비밀번호를 환경 변수로 설정
TZ: Asia/Seoul # 타임존을 'Asia/Seoul'로 설정
volumes: # 호스트의 디렉토리를 컨테이너의 디렉토리에 매핑
- ./data_for_mongodb:/data/db
networks: # 네트워크 설정
- backend # 'backend'라는 사용자 정의 네트워크에 연결
dev-mongo-express:
image: mongo-express:1.0.2-20 # Mongo Express 버전 1.0.2-20 이미지를 사용한다.
container_name: mongo-express # 컨테이너 이름을 'mongo-express'로 설정
ports: # 호스트와 컨테이너 포트 매핑
- "8081:8081"
environment: # 환경 변수 설정 및 몽고DB 웹 서비스 관리자 계정 및 시간대 설정
ME_CONFIG_MONGODB_SERVER: mongo # MongoDB 서버의 호스트 이름을 'mongo'로 설정
ME_CONFIG_MONGODB_ADMINUSERNAME: ${MONGO_INITDB_ROOT_USERNAME} # MongoDB 관리자 계정 사용자 이름을 환경 변수로 설정
ME_CONFIG_MONGODB_ADMINPASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} # MongoDB 관리자 계정 비밀번호를 환경 변수로 설정
ME_CONFIG_OPTIONS_EDITORTHEME: monokai # Mongo Express 웹 인터페이스의 편집기 테마를 'Monokai'로 설정
ME_CONFIG_BASICAUTH_USERNAME: ${ME_CONFIG_BASICAUTH_USERNAME} # Mongo Express 기본 인증 사용자 이름을 환경 변수로 설정
ME_CONFIG_BASICAUTH_PASSWORD: ${ME_CONFIG_BASICAUTH_PASSWORD} # Mongo Express 기본 인증 비밀번호를 환경 변수로 설정
TZ: Asia/Seoul # 타임존을 'Asia/Seoul'로 설정
depends_on:
- dev-mongo # 'dev-mongo' 서비스가 시작된 후에 'mongo-express' 서비스를 시작하도록 설정
networks: # 네트워크 설정
- dev # 'dev'라는 사용자 정의 네트워크 연결
networks: # 네트워크 정의
dev:
external: true # 이미 생성된 `dev` 네트워크에 종속
$ MONGO_INITDB_ROOT_USERNAME={관리자 계정명}
$ MONGO_INITDB_ROOT_PASSWORD={관리자 비밀번호}
$ ME_CONFIG_BASICAUTH_USERNAME={관리자 계정명}
$ ME_CONFIG_BASICAUTH_PASSWORD={관리자 비밀번호}
$ sudo docker-compose up -d --build
sudo docker-compose ps





