<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>0.0.0.0 on 远栈</title><link>https://stackonward.com/zh/tags/0.0.0.0/</link><description>Recent content in 0.0.0.0 on 远栈</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Thu, 03 Sep 2026 18:30:00 +0800</lastBuildDate><atom:link href="https://stackonward.com/zh/tags/0.0.0.0/index.xml" rel="self" type="application/rss+xml"/><item><title>Docker 端口怎么暴露：127.0.0.1、0.0.0.0、防火墙与容器网络</title><link>https://stackonward.com/zh/posts/docker-port-firewall-loopback/</link><pubDate>Wed, 02 Sep 2026 23:50:00 +0800</pubDate><guid>https://stackonward.com/zh/posts/docker-port-firewall-loopback/</guid><description>&lt;p&gt;判断 Docker 端口是否暴露，需要分别查看容器内监听地址、宿主机端口绑定，以及防火墙和云安全组。容器内监听 &lt;code&gt;0.0.0.0&lt;/code&gt;，不等于该端口已经暴露到公网。&lt;/p&gt;
&lt;figure&gt;
 &lt;img src="https://stackonward.com/images/posts/docker-port-firewall-loopback/zh/network-boundaries.svg" alt="公网经过云安全组和宿主防火墙访问反向代理，应用与数据库只在 Docker 网络内通信的分层图" loading="lazy" decoding="async"&gt;
 &lt;figcaption&gt;应用和数据库只在 Docker 网络通信；公网只能到达反向代理开放的端口。&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h2 id="监听地址宿主绑定和服务名属于不同网络层"&gt;监听地址、宿主绑定和服务名属于不同网络层&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;配置位置&lt;/th&gt;
					&lt;th&gt;示例&lt;/th&gt;
					&lt;th&gt;含义&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;应用进程监听&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;0.0.0.0:8080&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;接受当前容器所有网络接口上的 8080 连接&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;应用进程监听&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;127.0.0.1:8080&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;只接受同一容器回环接口的连接&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Docker 端口发布&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;127.0.0.1:8080:8080&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;宿主机本地可通过 8080 访问容器 8080&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Docker 端口发布&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;0.0.0.0:8080:8080&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;宿主机全部 IPv4 接口发布 8080，可能被公网访问&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Compose 内部访问&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;http://app:8080&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;同网络服务通过服务名访问容器端口&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;两处 &lt;code&gt;0.0.0.0&lt;/code&gt; 的作用不同。应用在容器内监听全部接口，是为了让同网络代理访问；Docker 把端口发布到宿主全部接口，则扩大了宿主机入口。&lt;/p&gt;</description></item></channel></rss>