【问题标题】:set docker container listen only to localhost not 0.0.0.0设置 docker 容器只听 localhost 而不是 0.0.0.0
【发布时间】:2022-01-22 12:07:25
【问题描述】:

我想用--network=host 运行docker 容器,但它忽略了端口和IP。我想在我的主机网络中运行 docker 容器,而我想将此容器限制为仅在 localhost 或 127.0.0.l 而不是 0.0.0.0 上侦听。

我该怎么办?

【问题讨论】:

    标签: docker containers localhost


    【解决方案1】:

    不要使用--network=host;它通常会禁用 Docker 的网络层,几乎从不需要。

    设置容器内的进程监听特殊的“所有接口”地址 0.0.0.0。如果不这样做,则根本无法从其自己的容器外部调用它。

    当您发布容器的端口时,无论是使用 docker run -p 选项还是 Compose ports: 设置,都将主机 IP 地址作为可选参数。如果将该地址设置为127.0.0.1,则发布的端口将无法从非容器主机进程以外的任何地方访问。

    docker run -d \
      -p 127.0.0.1:8000:8000    \  # tell Docker to only accept connections
                                \  # on the host localhost interface
      -e BIND_ADDR=0.0.0.0:8000 \  # tell the application to accept
                                \  # connections from "everywhere"
      my/image
    

    【讨论】:

      猜你喜欢
      • 2015-05-20
      • 2021-06-01
      • 2019-11-25
      • 1970-01-01
      • 2016-05-22
      • 1970-01-01
      • 1970-01-01
      • 2022-07-01
      • 1970-01-01
      相关资源
      最近更新 更多