Docker没有';不能绑定端口
为什么docker容器中的暴露端口不起作用Docker没有';不能绑定端口,docker,Docker,为什么docker容器中的暴露端口不起作用 让我们考虑下面的例子 Dockerfile: FROM debian RUN apt-get update && \ apt-get -y upgrade && \ apt-get -y install netcat strace EXPOSE 8080 ENTRYPOINT ["strace", "nc", "-l", "8080"] cmd运行docker运行-it-p8080:8080--
让我们考虑下面的例子
Dockerfile:FROM debian
RUN apt-get update && \
apt-get -y upgrade && \
apt-get -y install netcat strace
EXPOSE 8080
ENTRYPOINT ["strace", "nc", "-l", "8080"]
cmd运行docker运行-it-p8080:8080--cap add SYS_PTRACE ex_001
任何通过echo“TRALALA”| nc-v localhost 8080
发送内容的尝试都会导致连接到localhost 8080端口[tcp/http alt]成功代码>但仅此而已
容器中的strace实例不打印任何内容。为什么?
也就是说,strace挂起等待新的accept您需要-p
选项来指定用于侦听的本地端口。否则,它将数字解释为主机名
ENTRYPOINT ["strace", "nc", "-vlp", "8080"]
打开详细模式可以更清楚地了解nc正在做什么。这很奇怪。在Ubuntu上,nc-L8080可以正常工作。但在debian上,它会导致一个没有-p