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

ala*_*mmd 0 docker osrm

我正在尝试为 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
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

但是第二个正在像波纹管一样创建,在我看来第二个也在引用端口 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
Run Code Online (Sandbox Code Playgroud)

netstat 输出

tcp        0      0 192.168.0.2:6000      0.0.0.0:*               LISTEN


telnet  192.168.0.2 6000
Run Code Online (Sandbox Code Playgroud)

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

谢谢

Dav*_*aze 5

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

sudo docker run -p 192.168.0.2:5000:5000 ...
sudo docker run -p 192.168.0.2:6000:5000 ...
Run Code Online (Sandbox Code Playgroud)