Docker Swarm初始化失败:地址已在使用中

时间:2018-11-29 20:45:47

标签: docker docker-compose

我一直在浏览https://docs.docker.com/v17.12/get-started/part3/#take-down-the-app-and-the-swarm上的docker教程,并且到了我们要设置初始docker swarm的那一部分。

起初我要进行这项工作,但是随后必须调和系统上snap install dockerapt 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 个答案:

答案 0 :(得分:1)

似乎您已经从snap / apt都安装了docker,并且您必须卸载这两者之一(其中一个正在以swarm模式运行,而docker客户端正在连接到未安装的docker)。

要查找运行群体的进程,请使用以下命令:

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,如果要保留快照安装)中没有安装错误。 / p>