Error starting userland proxy: listen tcp 0.0.0.0:8080: bind: address already in use.

本文介绍了在使用Docker运行应用时遇到的端口冲突问题,通过netstat和kill命令定位冲突进程,然后提供了重新执行docker run命令的步骤。重点在于如何避免和处理端口占用,确保容器正常启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、现象
[root@localhost app]# docker run -p 8080:8080 -p 9326:9326 
--name eblog --link es_643:ees --link myrabbit:erabbit --link 
mymysql:emysql --link myredis:eredis -d eblog:1.0

a74c2caaca88203c1ca575cd2f8a0e0426d892d5800c4877e8ef0ed0d2022764
/usr/bin/docker-current: Error response from daemon: driver 
failed programming external connectivity on endpoint eblog 
(b1e8a322587b63931d3eb09c23f5f7661fa36d877bcfa465a6072bd5af68303
d): 

Error starting userland proxy: listen tcp 0.0.0.0:8080: 
bind: address already in use.

在这里插入图片描述

二、解决方案
# 1.找到占用端口的程序
netstat -anp|grep 8080

# 2.杀掉进程
kill -9 3516

# 3.重新执行命令
docker run -p 8080:8080 -p 9326:9326 --name eblog --link es_643:ees --link myrabbit:erabbit --link mymysql:emysql --link myredis:eredis -d eblog

在这里插入图片描述

### 解决 Docker 用户空间代理启动错误 当遇到 `Error starting userland proxy: listen tcp4 0.0.0.0:8080: bind: address already in use` 错误时,表明端口 8080 已经被其他进程占用。为了成功运行容器并绑定到该端口,可以采取以下措施: #### 查找占用端口的进程 通过命令行工具查找哪个进程正在使用端口 8080: 对于 Linux 和 macOS, 使用如下命令: ```bash lsof -i :8080 ``` 对于 Windows PowerShell, 可以执行: ```powershell Get-Process -Id (Get-NetTCPConnection -LocalPort 8080).OwningProcess ``` 这会返回一系列信息,其中包含 PID(进程 ID),这是终止目标进程所需的关键数据。 #### 终止占用端口的进程 获取到 PID 后,在 Unix-like 系统上可以通过发送信号来结束它: ```bash kill -9 <PID> ``` 请注意,强制杀掉进程可能会丢失未保存的数据;因此建议先确认是否能安全停止此程序再行动。 如果是在 Windows 上,则可以在任务管理器中找到对应的应用程序并点击“结束任务”。 #### 修改Docker映射端口配置 另一种方法是调整 Docker 容器发布的外部访问地址,从而避开冲突。编辑或重新指定 `-p` 参数指向另一个可用端口号: ```bash docker run -d -p 8081:8080 your_image_name ``` 这里将主机上的 8081 映射到了容器内部的服务监听于 8080 的位置[^3]。 #### 验证更改后的状态 完成上述任一操作之后,再次尝试启动之前失败过的镜像实例,并验证其能否正常工作而不抛出相同的异常消息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gblfy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值