【问题标题】:How to get access to express routes of a docker container from another docker container如何从另一个 docker 容器访问 docker 容器的快速路由
【发布时间】:2020-02-26 17:04:52
【问题描述】:

我正在开发一个包含大约 5 个服务的微服务。每个服务都在自己的容器中——显然不同的 IP 地址。每个服务都有自己的数据库。每个都可以独立工作。我正在使用 docker-compose 来启动将它们连接到同一网络中的服务。

我在尝试从另一个容器访问一个容器的路由时遇到了挑战,例如 app.use('/api/auth', routes.auth);在用户管理服务和 app.use('/api/tasks', routes.tasks);在任务服务中。如何从用户管理服务访问任务路由?简单地说,我想从用户管理的任务服务中获取数据。

我已经尝试过http-proxy-middleware,但到目前为止我没有成功。

请多指教

【问题讨论】:

    标签: node.js docker express microservices


    【解决方案1】:

    您已经在 docker 中创建了一个网络 在运行容器时附加网络 创建网络

    docker network create network
    

    您正在运行两个容器 Container1 3000端口

    docker run -d --name Container1 --net network -p 3000:3000 yourimage
    

    Container2 4000 端口

    docker run -d --name Container2 --net network -p 4000:4000 yourimage
    
    
    
    You can access container1 routes in containers 2 like 
    curl container1:3000/
    
    Same like vice Versa you call another containers like that
    
    

    【讨论】:

    • 我正在使用 docker-compose,是的,我将它们放在一个网络中。挑战是调用另一个路由,例如 [router.get('/tasks', handle.tasks);] 来自用户管理容器的任务中的路由。
    • 可以多解释一下我不明白你想说什么
    • 我已经改写了我的问题。希望它更清楚一点。
    • 尝试使用 network_mode: "host" 到容器并删除所有网络附件。当您运行 docker compose 时,它​​会创建桥接网络,因此现在将主机网络连接到容器,它将解决您的问题
    • 网络工作正常..我的麻烦是从任务服务器获取数据。如何在用户管理服务器中包含任务路由?
    猜你喜欢
    • 2017-07-12
    • 2023-02-24
    • 2020-12-22
    • 2019-06-13
    • 2021-03-04
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 2019-04-28
    相关资源
    最近更新 更多