Docker
Docker 容器退出時沒有任何消息
我正在嘗試在 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”參數為我解決了這個問題。
我認為問題在於
-d
and-dontfork
選項被放入上述相同的數組元素/字元串中Dockerfile
:CMD ["/usr/sbin/xinetd", "-d -dontfork"]
CMD
將指令更正為CMD ["/usr/sbin/xinetd", "-d", "-dontfork"]
應該解決問題。