继“入门:堆栈”服务器之后无休止地加载页面

我已经非常密切地关注Docker入门指南 – 除了我的python应用程序中的一些更改外,我已经确认这些应用程序没有从推送到Docker集线器的版本中工作。

但是,当我到达第3部分并尝试加载localhost:80 ,页面会无限加载。

我的命令:

 $ docker swarm init Swarm initiated: ... $ docker stack deploy -c docker-compose.yml Creating network getstartedlab_webnet Creating service getstartedlab_web $ docker stack ps getstartedlab ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS fhxqr2u8hxar getstartedlab_web.1 mctague/friendlyhello:2 cube Running Running 29 seconds ago 4t9mu9r8147e getstartedlab_web.2 mctague/friendlyhello:2 cube Running Running 28 seconds ago duute2pvgu9z getstartedlab_web.3 mctague/friendlyhello:2 cube Running Running 30 seconds ago 9kav6v27qfjn getstartedlab_web.4 mctague/friendlyhello:2 cube Running Running 29 seconds ago 1s2imbiuk6e2 getstartedlab_web.5 mctague/friendlyhello:2 cube Running Running 29 seconds ago $ docker logs <one of the running containers> * Running on http://0.0.0.0:80/ (Press CTRL+C to quit) $ curl localhost:80 < either an endless loading that I have to cancel with ^C, *OR* Connection refused > 

泊坞窗,compose.yml

 version: "3" services: web: image: mctague/friendlyhello:2 deploy: replicas: 5 resources: limits: cpus: "0.1" memory: 50M restart_policy: condition: on-failure ports: - "80:80" networks: - webnet networks: webnet: 

在某些系统中,默认情况下curl连接到ip6作为localhost。 所以你可以运行curl使用:

 $ curl 127.0.0.1:80 

要么

 $ curl -4 localhost:80 

阿列克谢的回答也是我的问题。 我解决了通过在/etc/sysctl.conf中添加以下两行(这在CentOS 7上)来禁用ipv6(因此默认为ipv4)的问题:

 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 

然后执行sysctl -p (全部为root / su)。