Docker

Docker 容器退出時沒有任何消息

  • March 4, 2017

我正在嘗試在 Docker 容器中執行 xinetd。

我的 Docker 文件非常基礎:

# voip-monitor
#
# VERSION               0.0.1
FROM ubuntu:14.04

RUN apt-get update && apt-get install -y xinetd python 

EXPOSE 9090 
CMD ["/usr/sbin/xinetd", "-d -dontfork"]

當我啟動我的容器時:

docker run -d -p 9090:9090 --name voip-monitor voip-monitor

它開始但在 2 秒後存在。

當我啟動我的容器時:

docker run -d -p 9090:9090 --name voip-monitor voip-monitor /usr/sbin/xinetd -d -dontfork

它按預期工作。我在這裡想念什麼?

你需要“-d”參數嗎?

我嘗試根據您的圖像啟動一個容器,這就是我得到的:

root@r2d2:/tmp/tmp# docker run -d -p 9090:9090 --name voip-monitor voip-monitor
e482c8d486134749c6f2747c252eed96f628924c4158c05ca09ac487ff87db24
root@r2d2:/tmp/tmp# docker logs voip-monitor 
xinetd: msg_init failed: can't open log file

檢查原始碼我認為這可能是問題所在,可能與 /dev/tty 訪問有關。

刪除“-d”參數為我解決了這個問題。

我認為問題在於-dand-dontfork選項被放入上述相同的數組元素/字元串中Dockerfile

CMD ["/usr/sbin/xinetd", "-d -dontfork"]

CMD將指令更正為

CMD ["/usr/sbin/xinetd", "-d", "-dontfork"]

應該解決問題。

引用自:https://serverfault.com/questions/661509