无法使用多个端口 运行 多个 OSRM Docker 实例

Unable to run multiple OSRM Docker instances by using multiple port

我正在尝试为 2 个国家/地区创建 OSRM Docker 所以第一个实例我创建了这个

sudo docker run -t -i  -p 192.168.0.2:5000:5000 -v $(pwd):/data osrm/osrm-backend osrm-routed --algorithm mld /data/great-latest.osm.pbf

现在我正在尝试从这样的不同目录启动第二个实例

sudo docker run -t -i -p 192.168.0.2:6000:6000  -v $(pwd):/data osrm/osrm-backend osrm-routed --algorithm mld /data/-latest.osm.pbf

但是第二个是像下面这样创建的,在我看来第二个也引用了端口 5000,我可以看到端口 6000 是打开的,但它没有任何连接。

docker ps
CONTAINER ID        IMAGE                            COMMAND                  CREATED             STATUS                  PORTS                                    NAMES
e5a1a2b3e040        osrm/osrm-backend                "osrm-routed --algor…"   14 seconds ago      Up 13 seconds           5000/tcp, 192.168.0.2:6000->6000/tcp   tender_elbakyan


c9ac75bdcea9        osrm/osrm-backend                "osrm-routed --algor…"   8 days ago          Up 8 days               192.168.0.2:5000->5000/tcp             awesome_murdock

netstat 输出

tcp        0      0 192.168.0.2:6000      0.0.0.0:*               LISTEN


telnet  192.168.0.2 6000

我确信过去它有效.. 任何帮助将不胜感激

谢谢

docker run -p 选项中的最后一个端口号是服务器正在侦听的容器 内的端口号。这通常是每张图片固定的,您可能希望在这两种情况下都为 5000

sudo docker run -p 192.168.0.2:5000:5000 ...
sudo docker run -p 192.168.0.2:6000:5000 ...

您的第二次调用应该是:

sudo docker run -t -i -p 192.168.0.2:6000:5000  -v $(pwd):/data osrm/osrm-backend osrm-routed --algorithm mld /data/-latest.osm.pbf

容器内的服务还在监听5000端口,而你把宿主机6000端口映射到容器6000端口,容器端没有监听。