我想运行一个无法访问外部互联网的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
答案 0 :(得分:1)
您可以尝试使用带有--internal
选项的自定义网络,然后将容器附加到该网络:
$ docker network create --internal internal-network
$ docker run --rm -it -p 8000:8000 --network=internal-network python bash