Study: DeveloperTools(DevTool)/DevTool: NoSQL(Elastic, Mongo)

[NoSQL] Docker๋ฅผ ์ด์šฉํ•˜์—ฌ MongoDB ์„œ๋ฒ„ ๋„์šฐ๊ธฐ (feat. mongo-express)

DrawingProcess 2023. 1. 10. 11:47
๋ฐ˜์‘ํ˜•
๐Ÿ’ก ๋ณธ ๋ฌธ์„œ๋Š” 'Docker๋ฅผ ์ด์šฉํ•˜์—ฌ MongoDB ์„œ๋ฒ„ ๋„์šฐ๊ธฐ (feat. mongo-express, Robo 3T)'์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋†“์€ ๊ธ€์ž…๋‹ˆ๋‹ค.
Docker๋ฅผ ์ด์šฉํ•˜์—ฌ MongoDB ์„œ๋ฒ„ ๋„์šฐ๊ณ  ์ด์— ์ ‘์†ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜์˜€์œผ๋‹ˆ ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

1. Mongo DB ํ”„๋กœ์ ํŠธ ์„ค์ •

1.1 mongodb ๋””๋ ‰ํ„ฐ๋ฆฌ ์ƒ์„ฑ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ ๊ถŒํ•œ ๋ณ€๊ฒฝ

% mkdir mongodb
% chown 999:999 mongodb

1.2 docker-compose.yml

# docker-compose.yml
version: "3.8"
services:
  mongo:
    image: mongo:5.0
    container_name: mongo
    env_file:
      - .env
    environment:
        - MONGO_INITDB_ROOT_USERNAME=${MONGO_INITDB_ROOT_USERNAME}
        - MONGO_INITDB_ROOT_PASSWORD=${MONGO_INITDB_ROOT_PASSWORD}
    restart: unless-stopped
    ports:
      - "27017:27017"
    volumes:
      - ./database/db:/data/db  # mongodb ๋ฐ์ดํ„ฐ ์ €์žฅ
      - ./database/dev.archive:/Databases/dev.archive
      - ./database/production:/Databases/production
    networks:
      - mongodb
  mongo-express:
    image: mongo-express
    container_name: mexpress
    env_file:
      - .env
    environment:
      - ME_CONFIG_MONGODB_ADMINUSERNAME=${MONGO_INITDB_ROOT_USERNAME} # mongodb ์ปจํ…Œ์ด๋„ˆ์˜ root ๊ณ„์ •
      - ME_CONFIG_MONGODB_ADMINPASSWORD=${MONGO_INITDB_ROOT_PASSWORD} # mongodb ์ปจํ…Œ์ด๋„ˆ์˜ root ๋น„๋ฐ€๋ฒˆํ˜ธ
      - ME_CONFIG_MONGODB_URL=mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017/?authSource=admin
      - ME_CONFIG_BASICAUTH_USERNAME=${MONGOEXPRESS_USERNAME}         # mongo-express ์‚ฌ์šฉ์ž ๊ณ„์ •
      - ME_CONFIG_BASICAUTH_PASSWORD=${MONGOEXPRESS_PASSWORD}         # mongo-express ์‚ฌ์šฉ์ž ๋น„๋ฐ€๋ฒˆํ˜ธ
    restart: unless-stopped
    ports:
      - "8081:8081"
    networks:
      - mongodb

networks:
  mongodb: 
    driver: bridge

1.3 .env

#####MONGODB
MONGO_INITDB_ROOT_USERNAME=root
MONGO_INITDB_ROOT_PASSWORD=password

#####MONGOEXPRESS
MONGOEXPRESS_LOGIN=mexpress
MONGOEXPRESS_PASSWORD=mexpress

1.4 docker-compose ๋„์šฐ๊ธฐ

% docker-compose up -d
% docker-compose ps
  Name                Command               State            Ports          
----------------------------------------------------------------------------
mexpress   tini -- /docker-entrypoint ...   Up      0.0.0.0:8081->8081/tcp  
mongo      docker-entrypoint.sh mongod      Up      0.0.0.0:27017->27017/tcp

2. Mongo DB ์ ‘์†

2.1 mongo-express ์ด์šฉ

docker-compose๋กœ ๋„์šด mongo-express์— ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ธํ„ฐ๋„ท URL์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•œ๋‹ค.

http://<ip>:8081/

์ฐธ๊ณ 

๋ฐ˜์‘ํ˜•