启动用户空间代理时出错:监听 tcp 0.0.0.0:80:绑定:地址已在使用中

启动用户空间代理时出错:监听 tcp 0.0.0.0:80:绑定:地址已在使用中

运行 docker,我遇到这个端口问题:

ERROR: for mmp_php_1  Cannot start service php: driver failed programming external connectivity on endpoint mmp_php_1 (80f0277f963830426b07e4ae461b8533864822fceb67263a78c27b4ae91d87f5): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use

ERROR: for php  Cannot start service php: driver failed programming external connectivity on endpoint mmp_php_1 (80f0277f963830426b07e4ae461b8533864822fceb67263a78c27b4ae91d87f5): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use
ERROR: Encountered errors while bringing up the project.

然后我检查端口,发现有东西正在使用 80。

timothy@13-9360:~/Public/pub/mmp$ ps -eaf | grep 1380
root      1380     2  0 Nov04 ?        00:00:00 [hci0]
timothy  20779  9201  0 08:34 pts/18   00:00:00 grep --color=auto 1380
timothy@13-9360:~/Public/pub/mmp$ netstat -tlnp | grep 80
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      -               
tcp6       0      0 :::8080                 :::*                    LISTEN      -               
tcp6       0      0 :::80                   :::*                    LISTEN      - 

我该如何终止此处正在运行的进程以便再次使用端口 80?

我的本地主机是 apache 登陆页面 atm,这很奇怪,因为我已经从我的电脑中删除了 apache。也不知道为什么会这样。

sudo netstat -tlnp

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:58347           0.0.0.0:*               LISTEN      1029/rpc.mountd 
tcp        0      0 0.0.0.0:5900            0.0.0.0:*               LISTEN      2591/vino-server
tcp        0      0 127.0.0.1:63342         0.0.0.0:*               LISTEN      16215/java      
tcp        0      0 0.0.0.0:44814           0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1019/rpcbind    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1089/nginx -g daemo
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      3036/dnsmasq    
tcp        0      0 0.0.0.0:46357           0.0.0.0:*               LISTEN      1029/rpc.mountd 
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      20431/cupsd     
tcp        0      0 127.0.0.1:29754         0.0.0.0:*               LISTEN      1268/vpnagentd  
tcp        0      0 0.0.0.0:17500           0.0.0.0:*               LISTEN      2696/dropbox    
tcp        0      0 127.0.0.1:6942          0.0.0.0:*               LISTEN      16215/java      
tcp        0      0 0.0.0.0:42622           0.0.0.0:*               LISTEN      1029/rpc.mountd 
tcp        0      0 127.0.0.1:17600         0.0.0.0:*               LISTEN      2696/dropbox    
tcp        0      0 0.0.0.0:2049            0.0.0.0:*               LISTEN      -               
tcp        0      0 127.0.0.1:17603         0.0.0.0:*               LISTEN      2696/dropbox    
tcp6       0      0 :::5672                 :::*                    LISTEN      18276/docker-proxy
tcp6       0      0 :::5900                 :::*                    LISTEN      2591/vino-server
tcp6       0      0 :::59533                :::*                    LISTEN      1029/rpc.mountd 
tcp6       0      0 :::42991                :::*                    LISTEN      1029/rpc.mountd 
tcp6       0      0 :::111                  :::*                    LISTEN      1019/rpcbind    
tcp6       0      0 :::8080                 :::*                    LISTEN      18412/docker-proxy
tcp6       0      0 :::80                   :::*                    LISTEN      1089/nginx -g daemo
tcp6       0      0 ::1:631                 :::*                    LISTEN      20431/cupsd     
tcp6       0      0 :::15672                :::*                    LISTEN      18260/docker-proxy
tcp6       0      0 :::47673                :::*                    LISTEN      1029/rpc.mountd 
tcp6       0      0 :::17500                :::*                    LISTEN      2696/dropbox    
tcp6       0      0 :::35324                :::*                    LISTEN      -               
tcp6       0      0 :::2049                 :::*                    LISTEN      -     

我难道不应该像你说的那样只改变端口吗?

version: '3'
services:
  php:
    build: .
    volumes:
     - ./www:/var/www/html:delegated
     - ./configs:/configs
    links:
     - db:db
     - redis:redis
     - rabbit:rabbit
     - elasticsearch:elasticsearch
    ports:
     -  "80:80"
     -  "443:443"
    extra_hosts:
     -  "localhost.local:127.0.0.1"
    environment:
     - CONFIG__DEFAULT__CATALOG__SEARCH__ELASTICSEARCH_SERVER_HOSTNAME=elasticsearch
  db:
    image: mariadb
    environment:

答案1

我曾经遇到过类似的问题。

另一个进程绑定到端口 80。

我必须找到罪魁祸首。我使用 netstat 查找哪个进程正在使用端口 80。

您可能需要安装包含以下内容的软件包网络状态网络工具

sudo apt install net-tools -y

安装后,网络状态已安装,继续执行命令

sudo netstat -tlnp

我得到的是类似这样的信息:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

tcp6       0      0 :::80                   :::*                    LISTEN      4227/httpd

所以过程httpdID 为 4227 的进程使用 80 端口。我打开 htop,按 F3 启用搜索,输入 httpd,发现 nextcloud(一个文件存储云服务器)是使用 httpd(一个网页服务器)的父进程。

但是,接下来要做什么取决于您。您可能想更改它们使用的端口,然后在内部转发它们。或者只是删除使用该端口的应用程序或暂时禁用它。

我正在安装 Docker 来容器化我现有的服务器/服务等,因此我删除了 Nextcloud 快照,重新启动了 Docker。

sudo snap remove nextcloud

要重新启动 docker,我最初尝试过sudo systemctl restart docker ,但意识到那不是服务的名称,因为它是一个 Snap docker。

要找到服务的名称,我必须仔细检查 systemctl 状态:

sudo systemctl status | grep docker

并发现服务名称是snap.docker.dockerd.service

为了重新启动它,我使用了sudo systemctl restart snap.docker.dockerd.service

然后我再次尝试了我的 docker 命令,错误消失了。

相关内容