![](/img/trans.png)
[英]Tomcat Docker Container With Network_Mode Host Can't Be Reached
[英]Why docker container already set network_mode:“host” and the public still can access from “http://ip:port”
我嘗試制作這樣的架構:
upstream server-i {
server 172.17.0.1:8080;
}
upstream server-ii {
server 172.17.0.1:8081;
}
server {
listen 80;
server_name localhost;
location /service-i {
proxy_pass http://server-i;
}
location /service-ii {
proxy_pass http://server-ii;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
如果您指定network_mode: host
,它將禁用該容器的所有 Docker 網絡功能。 您不能重新映射容器端口或阻止它在主機上可見; 您不能使用普通的 Docker 容器間網絡連接容器之間。 從網絡的角度來看,您的主機網絡容器與直接在主機上運行的非 Docker 進程沒有區別。
幾乎從不需要主機網絡。 在一些非常不尋常的情況下——如果你的服務有數千個它監聽的端口,如果你測量到 Docker NAT 開銷對於非常大的流量非常重要——它可以繞過 Docker 網絡系統的一些限制. 在幾乎所有實際情況下,您都應該使用默認(橋接)網絡,並在需要從 Docker 空間外部訪問時發布特定端口。
你應該:
docker network create
一個具有默認設置的網絡。)server docker_container_2 web_serverI:8080
。 有關更多詳細信息,請參閱Compose 中的網絡示例。ports:
配置或docker run -p
選項。 沒有這個,容器間通信仍然可以工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.