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

Connection to tcp://localhost:8554?timeout=0 failed: Cannot assign requested address

我有两个 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 是根据这些文件创建的: Docker文件:

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

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

Connection to tcp://localhost:8554?timeout=0 failed: Cannot assign requested address

有什么解决方法的建议吗?

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

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