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

时间:2018-11-11 21:22:15

标签: 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

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

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

我确信它过去能奏效。 任何帮助将不胜感激

谢谢

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

您的第二次调用应该是:

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,而在容器侧则未被侦听。