docker-pr proc 已经在监听 80 端口了吗?在 Ubuntu 上使用 snappy 安装 docker

12 amazon-ec2 amazon-web-services docker docker-compose docker-run

我跑了这个:

docker run -ti -p 80:80 --name esproxy "$tag"
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:

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

所以我做了:

root@ip-172-xx-29-110:/interos/repos/nginx# lsof -i:80
Run Code Online (Sandbox Code Playgroud)

我得到了:

COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
docker-pr 28213 root    4u  IPv6  64253      0t0  TCP *:http (LISTEN)
Run Code Online (Sandbox Code Playgroud)

所以这个过程看起来像:

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
Run Code Online (Sandbox Code Playgroud)

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

小智 12

我遇到过同样的问题。

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

service docker restart

然后再次启动你的容器


cod*_*ade 5

如果您重新启动 docker 服务后,该docker-pr服务分配了一些容器端口,则您的容器将自动启动。

要检查您是否有某个容器正在运行,请使用:

docker ps
Run Code Online (Sandbox Code Playgroud)

要停止这个容器,我们可以使用:

docker stop container_name
Run Code Online (Sandbox Code Playgroud)

如果您有多个容器,我们可以使用:

docker stop $(docker ps -a -q)
Run Code Online (Sandbox Code Playgroud)

要阻止容器自动启动,我们需要将其从自动重启中删除。

为此,请使用以下命令:

docker update --restart=no container_name
Run Code Online (Sandbox Code Playgroud)

之后,您将能够重新启动 docker 服务,并且您将不会发现任何容器自动启动。