【发布时间】:2021-09-07 08:57:44
【问题描述】:
所以我遇到了一个问题,即在我的 Ubuntu 机器上同时运行两个 Docker 实例(守护程序)。
问题如下:
我已经使用 docker 一段时间了,没有问题。我在那里有大量的图像和卷。现在,在重新启动后的一天,当我尝试使用 docker-compose up 启动我的项目时,我收到端口正在使用中的错误:
Error starting userland proxy: listen tcp 0.0.0.0:8011: bind: address already in use.
现在的问题是除了我的项目之外没有使用这个端口的项目。我检查了docker ps 并且没有容器。甚至没有我用来管理图像和容器的搬运工。似乎在我的机器或其他版本的 docker 上运行了另一个 docker-daemon。可能是我一开始就搞砸了安装,现在又困扰我了。
我尝试了什么:
- 已卸载 docker 的 snap 版本。
- 使用
sudo systemctl restart docker重新启动 - 完全重新安装了 docker - 它工作了一段时间,但我丢失了所有容器和图像,过了一会儿它又开始向我显示不同的 docker 具有不同的图像并且没有卷,同时我的应用程序的端口被阻止,因为我之前使用的 docker 仍然在运行。
有没有办法列出正在运行的 docker-daemons/engines/instances 并选择在系统中使用哪个?
【问题讨论】:
-
您不太可能拥有多个 Docker 守护进程,或者第二个 Docker 会导致此问题。如果你做了
$DOCKER_HOST环境变量会选择哪一个,但你可能没有这个设置。 -
不知何故我有两个。其中一张充满图像,另一张则有 12 张图像。卷也不匹配。它们随机变化。有时,当我的机器长时间闲置时,其中一个开关会关闭。然后当我重新启动另一个成为我可以在系统上使用的 docker 守护进程时。非常奇怪的情况。
-
你怎么知道?你能提供一个minimal reproducible example吗?
-
只有另一个人以某种方式运行了 2 次 docker stackoverflow.com/questions/69065443/…
-
为什么观察
tcp 0.0.0.0:8011: bind: address already in use会得出有两个docker实例的结论?只是有些东西正在监听端口 8011。您的应用程序是否使用SO_REUSEADDR?
标签: linux docker docker-compose ubuntu-18.04