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