【发布时间】:2019-10-17 22:26:19
【问题描述】:
我正在本地开发 docker 容器中的各种应用程序。过了一段时间,我想出了一些奇怪的问题。
问题
与往常一样,我启动了一个容器,将端口 8080 暴露给主机。然后我做了一些工作,但是因为我想在浏览器(localhost:8080)中查看应用程序,它返回了一个简单的页面,其中只有:“404 page not found”。
我想知道为什么会发生这种情况,因为从容器中我可以毫无问题地访问 web 应用程序。
所以我重新启动了那个容器,还是一样。我关闭了容器,然后……还是一样! 即使我的容器 - 接受端口绑定到 8080 且没有错误 - 已关闭,它仍会在浏览器中打印此文本。
无论我做什么,这个“404 页面未找到”消息现在总是存在。
深入研究
为了了解正在发生的事情或解决此问题,我尝试了以下方法:
- 查找监听 8080 的应用程序(
sudo lsof -i :8080或sudo netstat -nlp | grep 8080):结果为空 - 修剪泊坞窗 (
docker system prune -a) - 重启docker服务(
sudo service docker restart) - 重启 Kubuntu (
sudo restart) - 重置网络(根据 GUI 禁用和启用)
这些步骤都没有为我解决这个问题,我在谷歌搜索时也找不到任何相关信息。 我完全不知道这里发生了什么!
系统/软件信息
# OS Version
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 19.04
Release: 19.04
Codename: disco
# docker
$ docker --version
Docker version 19.03.2, build 6a30dfca03
# find process using :8080
$ sudo lsof -i :8080
$ sudo netstat -nlp | grep 8080
# in both cases there is no output
# wget
$ wget localhost:8080
--2019-10-18 00:20:52-- http://localhost:8080/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 404 Not Found
2019-10-18 00:20:52 ERROR 404: Not Found.
如何找到正在监听 8080 的进程? (这也让我感到困惑,我仍然可以在该端口上运行 docker 容器而不会出错)
我非常感谢你能给我的每一个提示。
【问题讨论】:
-
似乎其他进程正在运行,只是尝试发布一些其他端口,然后像 `docker run -it -p 8090:8080 your_image" 一样验证
-
@Adiii 实际上我并没有澄清我的问题,这与我如何在不同端口上使用 docker 无关,而不是当我知道的所有工具都没有时我如何找到正在监听 8080 的进程显示任何东西
标签: docker port netstat zombie-process