Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让docker容器在大范围阻塞internet时暴露端口?_Docker_Networking - Fatal编程技术网

如何让docker容器在大范围阻塞internet时暴露端口?

如何让docker容器在大范围阻塞internet时暴露端口?,docker,networking,Docker,Networking,我想运行一个无法访问外部internet的docker容器。我已经成功地使用了--network=none。但是现在我想从这个容器中托管一个web服务器,并从外部访问它。尝试时,我发现端口映射完全被忽略: $ docker run --rm -it -p 8000:8000 --network=none python bash # python -m http.server Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...

我想运行一个无法访问外部internet的docker容器。我已经成功地使用了
--network=none
。但是现在我想从这个容器中托管一个web服务器,并从外部访问它。尝试时,我发现端口映射完全被忽略:

$ docker run --rm -it -p 8000:8000 --network=none python bash
# python -m http.server
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
现在从容器外部:

$ docker port 981f253788ad 
$ curl localhost:8000
curl: (7) Failed to connect to localhost port 8000: Connection refused

您可以尝试使用带有
--internal
选项的自定义网络,然后将容器连接到此网络:

$ docker network create --internal internal-network
$ docker run --rm -it -p 8000:8000 --network=internal-network python bash


试过了,同样的事情也发生了。这个端口并没有真正暴露出来。啊,更正:通过
--内部
网络,容器获得了一个我可以直接命中的IP。用
-p8000:8000
暴露端口仍然不起作用,但我可以点击该IP上的内部端口,它工作正常。谢谢