将Docker容器设置为仅监听本地主机而非0.0.0.0

4
我想使用--network=host运行docker容器,但它忽略了端口和IP。我想在我的主机网络中运行Docker容器,同时我想限制该容器仅在本地主机或127.0.0.l上监听,而不是0.0.0.0。
我该怎么做?
1个回答

8

不要使用--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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接