docker - Netstat 未显示 docker 暴露的端口
问题描述
出于某种原因netstat
,没有列出 docker 公开的端口。正如这里所建议的,我同时使用EXPOSE
了 8080 和 5050 端口。但是从主机上看不到它们。
Dockerfile
...
FROM openjdk:11-jre-slim
COPY --from=build /usr/src/app/api/target/track-metadata-api-*.jar /app/track-metadata-api.jar
WORKDIR /app
EXPOSE 8080 5050
CMD java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5050 -jar track-metadata-api.jar
码头工人ps
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a6d3381a992d track-metadata_track-metadata "/bin/sh -c 'java -a…" 7 minutes ago Up 7 minutes 0.0.0.0:5050->5050/tcp, 0.0.0.0:8080->8080/tcp track-metadata_track-metadata_1
网络统计和卷曲
$ sudo netstat --all | grep 8080 # returns nothing
$ curl http://localhost:8080/v1/track-metadata/filtered
[{"authorName":"AC/DC","duration":208,"id":1,"tags":"#rock","trackName":"Highway to Hell"},{"authorName":"Sum41","duration":209,"id":2,"tags":"#rock","trackName":"War"},{"authorName":"Ziggy Marley","duration":220,"id":3,"tags":"#ragge","trackName":"Beach in Hawaii"}]
Docker & Ubuntu 版本
$ docker --version
Docker version 18.06.1-ce, build e68fc7a
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.10
Release: 18.10
代号:宇宙
解决方案
问题出在netstat
命令中,添加-anp
标志后,列出了端口。
$ sudo netstat -anp | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 16341/docker-proxy
推荐阅读
- angular-router - 如果什么都没有,有没有办法在角度路由器历史记录中添加一个页面?
- java - Redirect to an url but showing a different url in the bar adress using tomcat
- python - Error in Celery: "ModuleNotFoundError: No module named 'tasks'"
- html - 具有最小宽度并适应内容的 Flexbox 项目
- javascript - InAppBrowser loadstart 事件未触发/范围问题
- excel - 基于两列数据创建具有多个级别的层次结构
- bootstrap-4 - Bootstrap 4列中断不均匀
- c++ - 从线程 C# 中使用 VC++ 6.0 COM DLL
- visual-studio - 显示所有未添加到 .csproj 文件中的文件夹和文件
- css - 如何更改 RangeSlider (JavaFX) 中内部幻灯片的颜色?