我一直在浏览https://docs.docker.com/v17.12/get-started/part3/#take-down-the-app-and-the-swarm上的docker教程,并且到了我们要设置初始docker 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)列出可用的群,以便我可以加入它,然后以群主的身份从那里杀死它?
谢谢!
答案 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>