Docker Swarm 初始化失败 : Address already in use

标签 docker docker-compose

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

谢谢!

最佳答案

似乎您已经从 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那么你知道你必须停止它并移除 snap 以便它只留下来自 apt-get 的安装(如果你想保留 snap 安装,或者 viseversa)。

关于Docker Swarm 初始化失败 : Address already in use,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53547308/

相关文章:

docker - Docker Compose 构建中的 Nuget 包还原错误

python-3.x - docker-compose找不到文件

docker - Golang应用程序的Docker卷

mongodb - Mongodb官方镜像errno:111尝试创建副本集时连接被拒绝

mysql - Docker Compose mysql 导入 .sql

docker - 我应该在 Docker 镜像中使用什么术语?

javascript - 是否可以将 Node localhost 暴露给我的主机?

node.js - 从 docker 容器中的编译代码中获取编辑器中的智能感知

Docker Redis : Version "6.0.8" in ".\docker-compose.yml" is invalid

docker - 创建在多个 Docker 容器上运行的 HazelCast 集群