【问题标题】:Unable to run multiple OSRM Docker instances by using multiple port无法使用多个端口运行多个 OSRM Docker 实例
【发布时间】:2018-11-12 05:27:10
【问题描述】:

我正在尝试为 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 osrm


    【解决方案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 ...
    

    【讨论】:

      【解决方案2】:

      您的第二次调用应该是:

      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,而容器端没有监听。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-08-24
        • 2014-11-23
        • 2016-01-17
        • 1970-01-01
        • 1970-01-01
        • 2012-08-21
        • 1970-01-01
        相关资源
        最近更新 更多