连接到 tcp://localhost:8554?timeout=0 失败:无法分配请求的地址

问题描述

我有两个 docker 容器。我使用此命令运行的第一个

docker run -d --network onprem_network --name rtsp_simple_server --rm -t -e RTSP_PROTOCOLS=tcp -p 8554:8554 aler9/rtsp-simple-server

第二个 docker 是从这些文件创建的: Dockerfile:

FROM python:slim-buster
ENV PYTHONUNBUFFERED 1
ENV PYTHONDONTWRITEBYTECODE 1
workdir /code
copY rtsp_streaming.py /code/
copY ConsoleCapture_clipped.mp4 /code
RUN apt update && apt-get update && apt install ffmpeg -y # && apt-get install ffmpeg libsm6 libxext6  -y
CMD ["python","/code/rtsp_streaming.py"]

rtsp_streaming.py:

import os
os.system("ffmpeg -re -stream_loop 0 -i ConsoleCapture_clipped.mp4 -c copy -f rtsp rtsp://localhost:8554/mystream")

我像这样运行第二个 docker 容器:

docker run --network onprem_network -v ${data_folder}:/code/Philips_MR --name rtsp_streaming -d rtsp_streaming

docker ps -a 产生:

CONTAINER ID   IMAGE                      COMMAND                  CREATED          STATUS                      PORTS                    NAMES
48ea091b870d   rtsp_streaming             "python /code/rtsp_s…"   18 minutes ago   Exited (0) 18 minutes ago                            rtsp_streaming
5376e070f89f   aler9/rtsp-simple-server   "/rtsp-simple-server"    19 minutes ago   Up 19 minutes               0.0.0.0:8554->8554/tcp   rtsp_simple_server

第二个容器快速退出并出现此错误

连接到 tcp://localhost:8554?timeout=0 失败:无法分配 请求地址

有什么建议可以解决这个问题吗?

解决方法

您应该使用 rtsp_simple_server:8554 而不是 localhost

由于在名为 rtsp_streaming 的容器中,localhost 表示 rtsp_streaming,而在 rtsp_simple_server 中,localhost means rtsp_simple_server`。所以你应该使用容器的名称。