首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以通过curl访问码头服务,但不能从邮递员/铬访问。

可以通过curl访问码头服务,但不能从邮递员/铬访问。
EN

Stack Overflow用户
提问于 2017-10-18 16:10:39
回答 2查看 4.1K关注 0票数 6

我正在做码头入门指南:https://docs.docker.com/get-started/part3/#recap-and-cheat-sheet-optional

docker-compose.yml:

代码语言:javascript
复制
version: "3"
services:
  web:
    # replace username/repo:tag with your name and image details
    image: username/repo:tag
    deploy:
      replicas: 5
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
      restart_policy:
        condition: on-failure
    ports:
      - "80:80"
    networks:
      - webnet
networks:
  webnet:

我通过运行docker stack deploy -c docker-compose.yml getstartedlab来部署我的应用程序。然后从curl访问我的服务,这是一个工作良好的curl -4 http://localhost

代码语言:javascript
复制
<h3>Hello World!</h3><b>Hostname:</b> 1532cae6e06f<br/>....

但是我不能通过访问http://localhost:80 (它永远加载)从chrome或postman访问它。我怎么才能修好它?

更新19/10/17:

我可以在浏览器中从:http://192.168.1.68:80访问我的服务。它是领导节点的地址(这也是我的真正机器的ip )。

,但为什么我也不能从本地主机做呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-07 22:55:12

看到curl -4 ...让我怀疑这是一个ipv6问题。如果您的本地机器没有为ipv6配置,而且localhost对主机文件中的ipv6地址有一个引用,那么对localhost的调用将挂起。

解决方法相当简单,在您的urls中使用127.0.0.1而不是localhost

票数 14
EN

Stack Overflow用户

发布于 2017-12-15 03:48:22

尝试使用bridge network。桥接网络将与主机共享资源网络。例如,如果您在带有端口80:80的web管理员中设置,则可以使用localhost:80进行访问。因此,将driver: bridge添加到您的坞-撰写文件中,如下所示

代码语言:javascript
复制
version: "3"
services:
  web:
    # replace username/repo:tag with your name and image details
    image: username/repo:tag
    deploy:
      replicas: 5
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
      restart_policy:
        condition: on-failure
    ports:
      - "80:80"
    networks:
      - webnet
networks:
  webnet:
   driver: bridge
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46814642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档