sourcetip

도커 mongodb 구성 파일

fileupload 2023. 7. 17. 21:20
반응형

도커 mongodb 구성 파일

연결할 수 있는 방법이 있습니다./data/db로컬 호스트에 대한 컨테이너의 디렉토리입니다.그러나 구성에 대한 내용을 찾을 수 없습니다.링크 방법/etc/mongo.conf로컬 파일 시스템의 모든 파일에 연결합니다.아니면 다른 접근법이 사용될 수도 있습니다.당신의 경험을 공유해주세요.

mongodb 3.4 공식 도커 이미지를 사용하고 있습니다.mongod는 기본적으로 구성 파일을 읽지 않으므로 mongod 서비스를 시작하는 방법은 다음과 같습니다.

docker run -d --name mongodb-test -p 37017:27017 \
 -v /home/sa/data/mongod.conf:/etc/mongod.conf \
 -v /home/sa/data/db:/data/db mongo --config /etc/mongod.conf

-d를 제거하면 컨테이너의 초기화가 표시됩니다.

사용docker-compose.yml:

version: '3'
services:
 mongodb_server:
    container_name: mongodb_server
    image: mongo:3.4
    env_file: './dev.env'
    command:
        - '--auth'
        - '-f'
        - '/etc/mongod.conf'
    volumes:
        - '/home/sa/data/mongod.conf:/etc/mongod.conf'
        - '/home/sa/data/db:/data/db'
    ports:
        - '37017:27017'

그리고나서

docker-compose up

다음을 사용하여 도커 컨테이너를 실행하는 경우:

docker run -d -v /var/lib/mongo:/data/db \ 
-v /home/user/mongo.conf:/etc/mongo.conf -p port:port image_name

/var/lib/mongo호스트의 mongo 폴더입니다.

/data/db도커 컨테이너에 있는 폴더입니다.

나는 단지 mongo에 대한 구성을 지정하는 데 사용되는 명령을 알고 싶었습니다.docker run지휘권

먼저 볼륨 플래그를 지정합니다.-v호스트에서 컨테이너로 파일 또는 디렉토리를 매핑합니다.구성 파일이 다음 위치에 있다면/home/ubuntu/그리고 그것을 그 안에 넣고 싶었습니다./etc/다음을 사용하여 지정할 컨테이너의 폴더:

-v /home/ubuntu/mongod.conf:/etc/mongod.conf

그런 다음 mongo가 이미지 다음에 구성 파일을 읽도록 명령을 지정합니다.

mongo -f /etc/mongod.conf

이 모든 것을 종합하면 다음과 같은 것을 얻을 수 있습니다.

docker run -d --net="host" --name mongo-host -v /home/ubuntu/mongod.conf:/etc/mongod.conf mongo -f /etc/mongod.conf

어떤 이유에서인지 버전 3.0.1과 함께 MongoDb를 사용해야 합니다.

지금 : 2016-09-13 17:42:06


그것이 제가 발견한 것입니다.

#first step: run mongo 3.0.1 without conf
docker run --name testmongo -p 27017:27017 -d mongo:3.0.1

#sec step: 
docker exec -it testmongo cat /entrypoint.sh                                                                                        

#!/bin/bash
set -e

if [ "${1:0:1}" = '-' ]; then
    set -- mongod "$@"
fi

if [ "$1" = 'mongod' ]; then
    chown -R mongodb /data/db

    numa='numactl --interleave=all'
    if $numa true &> /dev/null; then
        set -- $numa "$@"
    fi

    exec gosu mongodb "$@" 
fi

exec "$@"

저는 몽고드 서비스를 시작하는 두 가지 방법이 있다는 것을 알게 되었습니다.내가 시도하는 것:

  docker run --name mongo -d -v your/host/dir:/container/dir mongo:3.0.1  -f /container/dir/mongod.conf
  • 최후의-fmongod 매개 변수입니다. 사용할 수도 있습니다.--config대신.

  • 같은 길을 가도록 하라your/host/dir존재하고 파일mongod.conf그 안에

언급URL : https://stackoverflow.com/questions/37063662/docker-mongodb-config-file

반응형