代码之家  ›  专栏  ›  技术社区  ›  Robert Townley

Docker Swarm Init失败:地址已在使用中

  •  1
  • Robert Townley  · 技术社区  · 7 年前

    我一直在阅读Docker教程 https://docs.docker.com/v17.12/get-started/part3/#take-down-the-app-and-the-swarm 我们要做的就是建立我们最初的码头群。

    我一开始就有这样的工作,但后来不得不调和 snap install docker apt install docker 在我的系统上。当我试图跑步时 docker swarm init 有人告诉我:

    Error response from daemon: manager stopped: failed to listen on remote API address: listen tcp 0.0.0.0:2377: bind: address already in use
    

    我没有运行其他Docker映像或服务,所以我可以删除或删除任何东西,但我似乎不知道如何清除这个端口,以便我可以初始化一个新的群。

    有没有一种方法可以a)杀死正在运行的蜂群,或者b)列出可用的蜂群,这样我就可以加入它,然后作为蜂群主人从那里杀死它?

    谢谢!

    1 回复  |  直到 7 年前
        1
  •  1
  •   codestation    7 年前

    似乎您已经从snap/apt安装了docker,并且必须卸载其中的一个(一个在swarm模式下运行,docker客户机正在连接另一个)。

    要查找运行Swarm的进程,请使用以下方法:

    sudo ss --tcp --listening --processes --numeric | grep ":2377"
    

    这将列出监听端口2377的进程,在我的案例中,我发现:

    LISTEN   0      128     *:2377     *:*    users:(("dockerd",pid=1229,fd=24))
    

    现在,使用PID可以找到进程位置:

    sudo readlink -f /proc/1229/exe
    

    如果流程来自 snap 然后你知道你必须停止它并移除快照,这样它只会离开apt-get的不安装(或者如果你想保留快照安装,viseversa)。

    推荐文章