我正在尝试为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
我确信它过去能奏效。 任何帮助将不胜感激
谢谢
答案 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,而在容器侧则未被侦听。