2015-12-19 23 views
1

工作時我在泊塢窗Tomcat的7失敗的時候在Debian的開始,而是繼續在後臺

sudo docker run -it debian /bin/bash 

安裝Tomcat 7

apt-get update && apt-get install -y tomcat7 

運行任何Debian的圖像,並啓動它,我得到

/etc/init.d/tomcat7 start 
[FAIL] Starting Tomcat servlet engine: tomcat7 failed! 

但是,如果我在瀏覽器中打開它,我看,那它的工作原理!
再次檢查使用CLI

/etc/init.d/tomcat7 status 
[ ok ] Tomcat servlet engine is not running.. 

現在唯一的辦法,我可以阻止它由PID殺死。
你有沒有遇到過這個問題?

回答

2

是的,我以前遇到過這個問題。 Docker不是初始系統。 sysv和upstart的初始化腳本可能需要系統具有適當的init系統或運行所需的守護程序來管理服務。

該腳本可能運行實際進程,但由於缺乏init系統,因此錯過了正確狀態(定位進程PID,重新啓動等)所需的管理位。

在這種情況下,最好只將該應用程序作爲命令運行。舉個例子來看看官方的Tomcat鏡像:https://github.com/docker-library/tomcat/blob/master/7-jre8/Dockerfile

+0

如果我使用任何Ubuntu鏡像,tomcat工作正常。難道是一些包或配置設置丟失? –

+0

是的,那是可能的。我會比較https://github.com/tianon/docker-brew-debian/blob/dist/jessie/build.manifest和https://github.com/tianon/docker-brew-ubuntu-core/blob/dist /trusty/ubuntu-trusty-core-cloudimg-amd64.manifest。乍一看,'init-system-helpers'和'upstart'因爲不同而異。 –