MongoDB 설치 및 명령어 정리하기

MongoDB 설치 및 명령어 정리하기

Database
Pymongo
MongoDB 설치 및 명령어 정리하기
Author

gabriel yang

Published

November 15, 2023

Docker Compose를 사용해 MongoDB를 설치하는 방법은 매우 간단합니다. Docker Compose 파일을 작성하여 MongoDB 이미지를 정의하고, 필요한 환경 설정을 추가한 후, docker-compose 명령을 통해 MongoDB 컨테이너를 실행할 수 있습니다.

1. Docker Compose 파일 작성

우선 docker-compose.yml 파일을 생성해야 합니다. 이 파일은 MongoDB 서비스에 대한 정의를 포함하게 됩니다.

a.WSL 또는 Linux 터미널에서 작업할 디렉터리를 생성합니다.

mkdir mongodb-docker
cd mongodb-docker

b.이 디렉터리 안에 docker-compose.yml 파일을 생성합니다.

vi docker-compose.yml

c.다음과 같이 docker-compose.yml 파일을 작성합니다.

  version: '3.8'  # Compose 파일 버전
  services:
    mongo:
      image: mongo:latest  # MongoDB 최신 버전 이미지 사용
      container_name: mongodb_container  # 컨테이너 이름
      environment:
        - MONGO_INITDB_ROOT_USERNAME=root  # 초기 루트 사용자 이름
        - MONGO_INITDB_ROOT_PASSWORD=examplepassword  # 초기 루트 사용자 비밀번호
      ports:
        - "27017:27017"  # 호스트와 컨테이너 간 포트 매핑
      volumes:
        - mongo-data:/data/db  # 데이터 지속성을 위한 볼륨 설정

  volumes:
    mongo-data:  # 볼륨 이름 정의
  • image: mongo:latest: MongoDB의 최신 이미지를 가져옵니다.
  • MONGO_INITDB_ROOT_USERNAMEMONGO_INITDB_ROOT_PASSWORD: 초기 루트 사용자 이름과 비밀번호를 환경 변수로 설정합니다.
  • ports: 27017 포트를 호스트와 컨테이너 간에 매핑하여 MongoDB에 접근할 수 있게 합니다.
  • volumes: MongoDB 데이터베이스 데이터를 영구 저장하기 위해 볼륨을 설정합니다. 이를 통해 컨테이너를 중지하거나 삭제해도 데이터가 유지됩니다.

2. Docker Compose로 MongoDB 실행

작성한 docker-compose.yml 파일이 있는 디렉터리에서 다음 명령어를 실행하여 MongoDB를 시작합니다.

docker-compose up -d
  • -d 옵션은 Docker Compose가 백그라운드에서 컨테이너를 실행하게 합니다.

3. MongoDB 상태 확인

MongoDB 컨테이너가 제대로 실행 중인지 확인하려면 다음 명령어를 사용합니다.

docker-compose ps

정상적으로 실행 중인 경우, State 열에 Up으로 표시됩니다.

4. MongoDB에 접속하기

MongoDB가 실행 중인 컨테이너에 접속하여 MongoDB 셸을 실행할 수 있습니다. MongoDB 셸에 접속하는 방법은 다음과 같습니다.

docker exec -it mongodb_container bash

코드 설명

  • docker exec: 현재 실행 중인 Docker 컨테이너에서 명령어를 실행하는 데 사용됩니다.
  • it: 두 개의 옵션이 결합된 형태입니다.
    • -i (interactive): 표준 입력을 활성화하여 컨테이너 내에서 상호작용할 수 있도록 합니다. 즉, 컨테이너에 명령을 입력할 수 있게 합니다.
    • –t (tty): TTY(Terminal emulation)를 활성화하여 가상 터미널을 생성합니다. 이를 통해 사용자는 터미널 세션에서 컨테이너와 상호작용할 수 있습니다.
  • mongodb_container: 명령을 실행할 대상 컨테이너의 이름 또는 ID를 지정합니다. 여기서는 “mongodb_container”라는 이름을 가진 컨테이너에서 명령을 실행합니다. - bash: 컨테이너 내에서 실행할 명령어를 지정합니다. 여기서는 컨테이너 안에서 bash 쉘을 실행하므로, 컨테이너의 bash 쉘에 접속하게 됩니다.
  • mongoDB bash mongosh -u root -p examplepassword 여기서 root는 사용자 이름, examplepassword는 비밀번호입니다. 또는 MongoDB 클라이언트 툴을 사용하여 localhost:27017 포트로 접속할 수 있습니다.

mongodb_container의 bash로 진입한 후 mongosh에 사용자 ID와 Password를 입력하면 mongodb에 연결할 수 있습니다.

mongosh -u root -p examplepassword

5. MongoDB 컨테이너 중지 및 제거

MongoDB를 중지하고 싶다면 다음 명령어로 컨테이너를 중지할 수 있습니다.

docker-compose down

이 명령어는 컨테이너를 중지하고 네트워크 및 관련 리소스를 정리합니다. 하지만 데이터는 volumes로 저장되므로 컨테이너를 삭제해도 데이터가 유지됩니다.


요약

  1. docker-compose.yml 파일 작성: MongoDB 이미지를 정의하고 환경 변수를 설정.
  2. Docker Compose 실행: docker-compose up -d 명령어로 MongoDB 컨테이너 실행.
  3. MongoDB 접속: 컨테이너 내부에서 MongoDB 셸에 접속하거나 클라이언트로 접속.
  4. 컨테이너 중지: docker-compose down으로 중지 및 정리.

이 과정을 통해 Docker Compose로 손쉽게 MongoDB를 설치하고 실행할 수 있습니다.