0
我正在嘗試爲Docker撰寫文件中的Mongo實例編寫一些腳本。我好像第二個命令永遠不會運行(它應該將此容器作爲repl集中的主要啓動項)。這裏是我的命令:Mongo Docker鏡像的多個命令
docker run -d mongo /bin/bash -c "mongod --replSet \"test\"; mongo --eval \"rs.initiate({_id:'test',members:[{_id:0,host:'localhost:27017'}]})\""
當我然後執行到容器並執行一個rs.config,它說明沒有運行。那麼,我該如何去發佈多個命令來啓動Mongo容器呢?
我不認爲這是問題。我做了碼頭運行-d mongo/bin/bash -c「mongod --replSet \」test \「」IMMEDIATELY後跟docker exec PID/bin/bash -c「mongo --eval \」rs.initiate({_ id: '測試',成員:[{_ ID:0,主機: '本地主機:27017'}]})\ 「」。一切正常。所以我試着碼頭運行-d mongo/bin/bash -c「mongod --replSet \」test \「&sleep 10; mongo --eval \」rs.initiate({_ id:'test',members:[{_ id :0,host:'localhost:27017'}]})\「」,我仍然遇到同樣的問題。 – Hohohodown
我想通了一半。 docker run -d mongo/bin/bash -c「mongod --replSet \」test \「&sleep 10; mongo --eval \」rs.initiate({_ id:'test',members:[{_ id:0 ,host:'localhost:27017'}]})\「; sleep 10000000000」 除了現在容器沒有「附加」(當容器將在mongod進程結束時退出)到mongod進程之外,它只是一個愚蠢的睡眠很長一段時間。我對linux的瞭解不多,不知道如何將它重新連接到mongod進程。 – Hohohodown
好吧我也想出了那部分。 docker run -d mongo/bin/bash -c「mongod --replSet \」test \「&sleep 10; mongo --eval \」rs.initiate({_ id:'test',members:[{_ id: 0,host:'localhost:27017'}]})\「; wait $(pgrep mongod)」 – Hohohodown