Docker不绑定端口

时间:2019-07-23 19:07:14

标签: 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 run -it -p 8080:8080 --cap-add SYS_PTRACE ex_001

通过echo "TRALALA" | nc -v localhost 8080发送任何内容的尝试都会进入Connection to localhost 8080 port [tcp/http-alt] succeeded!,但仅此而已。

容器中的strace实例不打印任何内容。为什么?

即strace挂起等待新的接受

1 个答案:

答案 0 :(得分:3)

您需要-p选项来指定用于侦听的本地端口。否则,它将数字解释为主机名。

ENTRYPOINT ["strace", "nc", "-vlp", "8080"]

打开详细模式可以更清楚地了解nc在做什么。