본문 바로가기

리눅스

mongodb와 mongo-express를 Docker Compose를 사용하여 실행하는 방법

728x90

mongodb와 mongo-express를 Docker Compose를 사용하여 실행하는 방법

Docker Compose를 사용하여 MongoDB와 Mongo Express를 쉽게 설정하고 관리할 수 있습니다.

1. Docker Compose 파일 생성

프로젝트 디렉토리에 Docker Compose 파일(docker-compose.yml)을 생성합니다.

vim docker-compose

2. Docker Compose 설정 추가

docker-compose.yml 파일에 MongoDB와 Mongo Express를 위한 서비스 정의를 추가합니다.

version: '3.9'
services:

  ### Mongodb Servers
  mongo1:
    image: anti1346/mongo:5.0.8
    container_name: mongo1
    restart: unless-stopped
    env_file:
      - .env
    environment:
      - MONGO_INITDB_ROOT_USERNAME=${MONGO_INITDB_ROOT_USERNAME}
      - MONGO_INITDB_ROOT_PASSWORD=${MONGO_INITDB_ROOT_PASSWORD}
      - TZ=Asia/Seoul
    command: mongod --auth --replSet rs1 --keyFile /data/key/mongo.key --dbpath /data/db --bind_ip_all
    volumes:
      - ./mongodb/data-mongo1:/data/db
    ports:
      - 27017:27017
    expose:
      - 27017
    networks:
      - mongo-net


  ### mongo-express
  mongo-express:
    image: mongo-express:latest
    container_name: mongo-express
    restart: always
    environment:
      ME_CONFIG_MONGODB_URL: mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo1:27017/
    depends_on:
      - mongo1
    ports:
      - 8080:8081
    expose:
      - 8081
    networks:
      - mongo-net


networks:
  mongo-net:

3. 환경 설정(.env) 파일 생성

vim .env
#####MONGODB
MONGO_INITDB_ROOT_USERNAME=root
MONGO_INITDB_ROOT_PASSWORD=changeme
MONGO_INITDB_DATABASE=admin
MONGO_REPLICA_SET_NAME=rs0

#####MONGOEXPRESS
MONGO_ROOT_USER=root
MONGO_ROOT_PASSWORD=changeme
MONGOEXPRESS_LOGIN=root
MONGOEXPRESS_PASSWORD=changeme
728x90

4. mongodb 디렉터리 생성 및 권한 설정

mkdir mongodb
chown 999:999 mongodb

5. 컨테이너 실행

Docker Compose를 사용하여 컨테이너를 실행합니다.

docker-compose up -d
docker-compose ps
$ docker-compose ps
    Name                   Command               State            Ports
---------------------------------------------------------------------------------
mongo-express   tini -- /docker-entrypoint ...   Up      0.0.0.0:8080->8081/tcp
mongo1          docker-entrypoint.sh mongo ...   Up      0.0.0.0:27017->27017/tcp

6. Mongo Express 액세스(웹 브라우저 접속)

http://localhost:8080을 사용하여 Mongo Express에 액세스할 수 있습니다. 초기 로그인에는 MongoDB 루트 사용자 이름과 비밀번호를 사용합니다.

http://{serverip}:8080

MongoExpress1

 

MongoDB와 Mongo Express가 Docker 컨테이너에서 실행됩니다. MongoDB는 데이터베이스를 저장하고 Mongo Express는 MongoDB 데이터를 시각화하고 관리하는 데 사용됩니다. 설정을 조정하여 사용자 정의하고 필요에 따라 데이터베이스와 컬렉션을 추가할 수 있습니다.

 

728x90