Docker에서 MongoDB 컨테이너 시작시 초기 데이터 가져오기

6401 단어 도커MongoDB

소개



Docker에서 MongoDB를 컨테이너를 시작하고 데이터를 확인할 때까지 최소한의 구성입니다.

하고 싶은 일


  • 컨테이너 작성시에 초기 데이터를 투입하고 싶다
  • 입력 한 데이터를 GUI 클라이언트에서 참조하고 싶습니다.

    디렉토리 구성


    .
    ├── docker-entrypoint-initdb.d
    │   ├── 1-mongo-init.js
    │   ├── 2-mongo-init.sh
    │   └── staffs.json
    └── docker-compose.yml
    

    각 파일의 내용



    docker-compose.yml



    MONGO_INITDB_DATABASE에 지정된 이름으로 데이터베이스가 작성됩니다.

    docker-compose.yml
    version: '3.3'
    
    services:
      mongo:
        image: mongo
        container_name: mongo
        restart: always
        environment:
          MONGO_INITDB_ROOT_USERNAME: mongo
          MONGO_INITDB_ROOT_PASSWORD: mongo
          MONGO_INITDB_DATABASE: mongo_example
          TZ: Asia/Tokyo
        ports:
          - 27018:27017
        volumes:
          - ./docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
    

    docker-entrypoint-initdb.d/1-mongo-init.js



    사용자 작성과 함께 컬렉션을 작성하고 있습니다.
    이 예제에서는 staffs 컬렉션을 예제로 만듭니다.

    docker-entrypoint-initdb.d/1-mongo-init.js
    var user = {
      user: "mongo",
      pwd: "mongo",
      roles: [
        {
          role: "dbOwner",
          db: "mongo_example"
        }
      ]
    };
    
    db.createUser(user);
    db.createCollection('staffs');
    

    docker-entrypoint-initdb.d/2-mongo-init.sh



    작성한 사용자, 암호, 데이터베이스, 콜렉션 및 가져올 JSON 파일을 지정합니다.

    docker-entrypoint-initdb.d/2-mongo-init.sh
    mongoimport -u mongo -p mongo --db mongo_example --collection staffs --file /docker-entrypoint-initdb.d/staffs.json --jsonArray
    

    docker-entrypoint-initdb.d/staffs.json



    staffs 컬렉션으로 가져올 데이터를 JSON 파일로 준비합니다.

    docker-entrypoint-initdb.d/staffs.json
    [
        {
            "id" : 1,
            "name" : "佐藤"
        },
        {
            "id" : 2,
            "name" : "鈴木"
        },
        {
            "id" : 3,
            "name" : "田中"
        }
    ]
    

    실행



    docker-compose로 시작합니다.
    $ docker-compose up -d
    Creating network "mongodb_default" with the default driver
    Creating mongo ... done
    

    GUI 클라이언트로 확인



    1. MongoDB Compass 다운로드



    MongoDB Compass 에서 Platform을 선택하고 Download 버튼을 클릭합니다.

    2. 연결



    Paste your connection string에 다음 연결 정보를 입력하고 CONNECT 버튼을 클릭합니다.
    mongodb://mongo:mongo@localhost:27018
    



    3. 결과



    staff 컬렉션으로 데이터를 가져올 수 있는지 확인할 수 있습니다.

  • 좋은 웹페이지 즐겨찾기