簡體   English   中英

如何在阻止互聯網的同時讓 docker 容器暴露端口?

[英]How can I get a docker container to expose a port while blocking the internet at large?

我想運行一個無法訪問外部互聯網的 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM