2016-09-20 5 views
0

私は、次のDockerfileありますのmongodは、(ドッキングウィンドウのDebianを使用:喘鳴)を停止しません

docker build -t my/image . 

とサーバを起動して停止しよう:

FROM debian:wheezy 

RUN apt-get update 

RUN apt-get install -y apt-utils 

RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927 
RUN echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.2 main" | tee /etc/apt/sources.list.d/mongodb-org-3.2.list 
RUN apt-get update 
RUN apt-get install -y mongodb-org 

をそれから私はイメージを構築

$ docker run -it my/image 
[email protected]:/# service mongod start 
[ ok ] Starting database: mongod. 
[email protected]:/# service mongod stop 
[FAIL] Stopping database: mongod failed! 

ご覧のとおり、mongodは停止できません。これを確認するには、psを実行し、mongodプロセスのためにgreppingを実行します。それはまだそこにある。

は、ここでのログです:

[email protected]:/# cat /var/log/mongodb/mongod.log 
2016-09-20T05:01:02.874+0000 I CONTROL [initandlisten] MongoDB starting : pid=19 port=27017 dbpath=/var/lib/mongodb 64-bit host=fce8d9638ce4 
2016-09-20T05:01:02.874+0000 I CONTROL [initandlisten] db version v3.2.9 
2016-09-20T05:01:02.874+0000 I CONTROL [initandlisten] git version: 22ec9e93b40c85fc7cae7d56e7d6a02fd811088c 
2016-09-20T05:01:02.874+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.1e 11 Feb 2013 
2016-09-20T05:01:02.874+0000 I CONTROL [initandlisten] allocator: tcmalloc 
2016-09-20T05:01:02.874+0000 I CONTROL [initandlisten] modules: none 
2016-09-20T05:01:02.874+0000 I CONTROL [initandlisten] build environment: 
2016-09-20T05:01:02.874+0000 I CONTROL [initandlisten]  distmod: debian71 
2016-09-20T05:01:02.874+0000 I CONTROL [initandlisten]  distarch: x86_64 
2016-09-20T05:01:02.874+0000 I CONTROL [initandlisten]  target_arch: x86_64 
2016-09-20T05:01:02.874+0000 I CONTROL [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1", port: 27017 }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } } 
2016-09-20T05:01:02.893+0000 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=1G,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0), 
2016-09-20T05:01:03.087+0000 I FTDC  [initandlisten] Initializing full-time diagnostic data capture with directory '/var/lib/mongodb/diagnostic.data' 
2016-09-20T05:01:03.087+0000 I NETWORK [HostnameCanonicalizationWorker] Starting hostname canonicalization worker 
2016-09-20T05:01:03.156+0000 I NETWORK [initandlisten] waiting for connections on port 27017 

私はすでに解決のためにGoogleで検索しました。私が見つけた投稿のほとんどは非常に古いです、または私と同じ問題を記述していません。どんな助けでも大歓迎です。

答えて

1

それはのようになりますコマンド呼び出して、内部以来service mongod stopに問題があるように表示されます。それは、プロセスを停止することができなかったので、

何とか

start-stop-daemon --stop --pidfile /var/run/mongod.pid --user mongodb --exec /usr/bin/mongod

しかしstart-stop-daemonコマンドは、実行可能/usr/bin/mongodを見つけることができません。サービススクリプトは/etc/init.d/mongodにあります。

私が働いていることが判明ソリューションは、コマンドラインから直接--execせずにそれを呼び出すことです:

start-stop-daemon --stop --pidfile /var/run/mongod.pid

、それが適切にサービスを停止することができるようです。

私はこの問題がMongoDBに限定されないと考えています。なぜなら、停止できないサービスについての複数の参考文献が見つかりましたからです。

関連する問題