Монгонский демон не запускается службой mongod start

7

Недавно я установил пакет mongodb, прочитав эту страницу ( Ссылка ). Я использую docker и ubuntu 14.04 для развертывания моего сервера.

Проблемы начинаются с первого запуска службы mongod :

# service mongod start

Я получил следующее:

Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mongod restart

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop mongod ; start mongod. The restart(8) utility is also available.

Я пробовал это:

# start mongod

Но не получил выход.

Далее я хотел проверить журнал, но нет журнала!

ls /var/log/mongodb -a #empty

Итак, в следующий раз я попытался запустить оболочку mongo :

# mongo
2014-08-12T17:42:44.431+0000 warning: Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused
2014-08-12T17:42:44.432+0000 Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed at src/mongo/shell/mongo.js:146
exception: connect failed

Хорошо, после googling я проверил (одобрил) все ответы от Mongodb на сервере linux и Ссылка (раздел Устранение неполадок ), но ничего не получите.

Оболочка mongo работает только при запуске mongod прямо в фоновом режиме:

mongod --verbose &

[DataFileSync] BackgroundJob starting: DataFileSync
shardKeyTest passed
isInRangeTest passed
shardObjTest passed
[initandlisten] MongoDB starting : pid=451 port=27017 dbpath=/data/db 64-bit host=a9d816faea4c
[initandlisten] db version v2.6.4
[initandlisten] git version: 3a830be0eb92d772aa855ebb711ac91d658ee910
[initandlisten] build info: Linux build7.nj1.10gen.cc 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49
[initandlisten] allocator: tcmalloc
[initandlisten] options: { systemLog: { verbosity: 1 } }
[initandlisten] flushing directory /data/db
[initandlisten] journal dir=/data/db/journal
[initandlisten] recover : no journal files present, no recovery needed
[initandlisten] flushing directory /data/db/journal
[initandlisten] flushing directory /data/db/journal
[initandlisten] opening db:  local
[initandlisten] enter repairDatabases (to check pdfile version #)
[initandlisten]     local
[initandlisten] done repairDatabases
[initandlisten] opening db:  admin
[initandlisten] query admin.system.roles planSummary: EOF ntoreturn:0 ntoskip:0 keyUpdates:0 numYields:0 locks(micros) W:119 r:106 nreturned:0 reslen:20 0ms
[ClientCursorMonitor] BackgroundJob starting: ClientCursorMonitor
[PeriodicTaskRunner] BackgroundJob starting: PeriodicTaskRunner
[TTLMonitor] BackgroundJob starting: TTLMonitor
[initandlisten] fd limit hard:1048576 soft:524288 max conn: 419430
[IndexRebuilder] BackgroundJob starting: IndexRebuilder
[IndexRebuilder] opening db:  local
[initandlisten] create collection local.startup_log { size: 10485760, capped: true }
[initandlisten] command local.$cmd command: create { create: "startup_log", size: 10485760, capped: true } ntoreturn:1 keyUpdates:0 numYields:0  reslen:75 0ms
[initandlisten] insert local.startup_log ninserted:1 keyUpdates:0 numYields:0  0ms
[initandlisten] waiting for connections on port 27017
[IndexRebuilder] checking complete2014-08-12T17:48:29.837+0000 [DataFileSync] BackgroundJob starting: DataFileSync

Теперь у меня есть следующее:

/var/lib/mongodb (mongodb:mongodb) empty
/var/log/mongodb (mongodb:nogroup) empty
/data/db (mongo:nogroup) #useless

# mongod.conf
dbpath=/var/lib/mongodb
logpath=/var/log/mongodb/mongod.log
logappend=true
port = 27017
bind_ip = 0.0.0.0
...

Что здесь происходит? Я совершенно смущен (

    
задан Timur Fayzrakhmanov 12.08.2014 в 20:00
источник

1 ответ

5

Контейнеры-докеры обычно не имеют полной системы инициализации, и взаимодействие с выскочкой не будет работать внутри контейнера докеров. (Теоретически это возможно, но оно побеждает цели легкого веса)

Это означает, что вы запускаете контейнер докеров, он будет запускать одну команду «/ usr / bin / mongod»

Пример запуска mongodb внутри контейнера докера: Ссылка

Кроме того, поскольку вы используете команды установки с помощью контейнера интерактивного докера, ваш интерпретатор оболочки является единственной командой, если считать докер. После интерактивного сеанса вы можете запустить mongod в фоновом режиме (как и вы) и запустить сеанс клиента mongo.

Другим способом было бы выполнить эти инструкции как часть Dockerfile . Вы можете обратиться к примеру mongodb .

Вы также можете рассмотреть некоторые официальные изображения mongo db, уже опубликованные в докер-хабе:

Ссылка

    
ответ дан sukrit007 11.06.2015 в 08:05