我想在 Docker 中运行一个 VoIP 客户端(linphone)。
我唯一能够构建的是:https://github.com/develpudu/docker-linphone
这里是构建命令的输出:
PS C:\dev\git> docker build -t docker-linphone docker-linphone/develpudu
[+] Building 3.6s (11/11) FINISHED
=> [internal] load build definition from Dockerfile 0.1s
=> => transferring dockerfile: 1.46kB 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/ubuntu:bionic 3.4s
=> [1/6] FROM docker.io/library/ubuntu:bionic@sha256:14f1045816502e16fcbfc0b2a76747e9f5e40bc3899f8cfe20745abaafe 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 95B 0.0s
=> CACHED [2/6] RUN apt-get update && apt-get install -y linphone doxygen pkg-config pulseaudio 0.0s
=> CACHED [3/6] COPY DockerMain.sh / 0.0s
=> CACHED [4/6] COPY pulse-client.conf /etc/pulse/client.conf 0.0s
=> CACHED [5/6] COPY hosts /etc/hosts 0.0s
=> CACHED [6/6] RUN export PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin" 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:ce3a667dd1c727019f7c53803b2a59345bd63d388e34d33e7380f5a9350e9f0a 0.0s
=> => naming to docker.io/library/docker-linphone 0.0s
之后我运行图像:
docker run -it --rm docker-linphone
容器随后出现在 Docker Desktop 中,但是当我按下“开始”按钮时,状态变为“正在运行”,并在一两秒后变为“退出”(255)。在日志选项卡中没有显示任何内容。
还有其他方法可以找出问题所在吗?
当 Docker 镜像像这样终止时,您的调试策略是覆盖其默认命令,然后从内部手动运行它们。
您可以使用
docker inspect <image>
为您的图像找到Cmd
和Entrypoint
。这会告诉您容器在启动时执行的操作。然后,您可以使用 docker run -it --rm docker-linphone /bin/bash
之类的东西开始您的图像,以使用外壳覆盖 Cmd
(如果有入口点,那么您也需要使用 --entrypoint
覆盖它)。
然后在 shell 中,您可以运行映像在启动时执行的常规命令并监视发生的情况。