docker-pr进程已经在端口80上监听了吗?在Ubuntu上安装了带有snappy的docker。

12
我运行了这个:
docker run -ti -p 80:80 --name esproxy "$tag"

但是我遇到了这个错误:

docker: 守护程序的错误响应: 驱动程序在端点 esproxy (ead1fa4f09b2326cd1ff6aa0e3b8f8bfa5c9d353eb6db4efef6d188b81ea9df7) 上的外部连接失败: 启动用户空间代理时出错: 监听 tcp 0.0.0.0:80: 绑定: 地址已在使用中。

所以我做了以下操作:
root@ip-172-xx-29-110:/interos/repos/nginx# lsof -i:80

我得到了:
COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
docker-pr 28213 root    4u  IPv6  64253      0t0  TCP *:http (LISTEN)

这个过程看起来像这样:
root     28213  0.0  0.0 116552  2620 ?        Sl   04:34   0:00 /snap/docker/384/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 80 -container-ip 172.17.0.2 -container-port 80

有人知道那个过程是什么吗?

1
请注意,docker-pr只是输出中截断的docker-proxy - brandizzi
2个回答

12

我曾遇到同样的问题。

停止所有正在运行的容器并重新启动docker服务,对我来说解决了这个问题。

service docker restart

然后再次启动您的容器。


5
如果在重新启动 Docker 服务后,docker-pr 服务分配了一些容器端口,则你的容器将自动启动。
要检查是否有运行中的容器,请使用:
docker ps

为了停止这个容器,我们可以使用:
docker stop container_name

如果你有多个容器,我们可以使用以下方法:

docker stop $(docker ps -a -q)

为了停止容器自动启动,我们需要将其从自动重启中删除。
要执行此操作,请使用以下命令:
docker update --restart=no container_name

完成之后,您可以重新启动docker服务,而且您将不会发现任何容器自动启动。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接