gpt4 book ai didi

docker - 在 Ubuntu 20.04 上从 Docker Swarm 拒绝连接

转载 作者:行者123 更新时间:2023-12-02 19:48:10 25 4
gpt4 key购买 nike

下面更新!

我对 Ubuntu 20.04 上的 Docker swarm 感到困惑。我在 Scaleway 上创建了一个干净的 Ubuntu 机器,并且基本上遵循了 https://dockerswarm.rocks/ 中的教程。 .我很快也找到了这个教程,它更短更简洁:https://blog.creekorful.com/2019/10/how-to-install-traefik-2-docker-swarm/ .

基本上(全部从 SSH 进入机器):

  • 已安装 Docker
  • 使用 # docker swarm init --advertise-addr=x.x.x.x 初始化 Swarm ,在这里我使用了服务器的远程 IP 地址。
  • 然后我创建了一个覆盖网络 # docker network create --driver=overlay my-net
  • 我启动了一个简单的 hello world 容器:
  • version: '3'
    services:
    helloworld:
    image: tutum/hello-world:latest
    ports:
    - 80:80
    networks:
    - my-net
    networks:
    my-net:
    external: true
    # docker stack deploy -c helloworld.yml helloworld
  • 从这一点开始,我假设我应该能够 # curl 127.0.0.1并得到我的 Hello World 。但是,我收到连接被拒绝:curl: (7) Failed to connect to 127.0.0.1 port 80: Connection refused

  • 我尝试/检查的事情

    来自 docker service ls 的输出
    root@www2:~# docker service ls
    ID NAME MODE REPLICAS IMAGE PORTS
    md1bd2ydswo8 helloworld_helloworld replicated 1/1 tutum/hello-world:latest *:80->80/tcp

    来自 docker ps 的输出
    root@www2:~# docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    7c2d9d7379c5 tutum/hello-world:latest "/bin/sh -c 'php-fpm…" About a minute ago Up About a minute 80/tcp helloworld_helloworld.1.7u99ox2ea6bylb5by8vdca0pt

    在 ubuntu 上启用 UFW

    UFW 默认被禁用,但我也尝试启用它。这是 # ufw status 的输出
    root@www2:~# ufw status
    Status: active

    To Action From
    -- ------ ----
    22/tcp ALLOW Anywhere
    2376/tcp ALLOW Anywhere
    2377/tcp ALLOW Anywhere
    7946/tcp ALLOW Anywhere
    7946/udp ALLOW Anywhere
    4789/udp ALLOW Anywhere
    80/tcp ALLOW Anywhere
    22/tcp (v6) ALLOW Anywhere (v6)
    2376/tcp (v6) ALLOW Anywhere (v6)
    2377/tcp (v6) ALLOW Anywhere (v6)
    7946/tcp (v6) ALLOW Anywhere (v6)
    7946/udp (v6) ALLOW Anywhere (v6)
    4789/udp (v6) ALLOW Anywhere (v6)
    80/tcp (v6) ALLOW Anywhere (v6)

    乱搞IP地址

    我还尝试 curl 到公共(public) IP 和私有(private) IP,以及使用私有(private) IP 作为广告地址。我还尝试通过 IP 和域名从笔记本电脑 curl 到远程服务器。但一切都无济于事...

    尝试 Arch Linux

    我在我的笔记本电脑上运行 Arch Linux,并尝试在我的笔记本电脑上本地做同样的事情,这没有任何问题。

    非常欢迎任何想法,谢谢!

    更新

    所以我几乎失去了它,我决定启动另一个 VPS,这次清理 Ubuntu 18.04(而不是 20.04),它立即工作,没有任何问题......

    最佳答案

    几天来,我一直在努力解决这个问题。在 IBM Cloud 上的全新 Ubuntu 20.04 镜像上,无法从 Docker Swarm 服务公开端口。
    我最终在 sudo journalctl -u docker.service 的日志中发现了这条消息。

    level=error msg="Could not get ipvs family information from the kernel. It is possible that ipvs is not enabled in your kernel. Native loadbalancing will not work until this is fixed."
    这已通过安装 ipvsadm 得到确认与 sudo apt-get install ipvsadm ,然后运行 ​​ sudo ipvasdm ,它返回类似的消息。
    我切换回 18.04,而不是试图重建内核,但毫无疑问,如果你愿意的话,这是可能的。

    关于docker - 在 Ubuntu 20.04 上从 Docker Swarm 拒绝连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62374440/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com