You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Docker容器配置为仅本地局域网可访问?

Docker容器限制仅本地局域网访问的配置方法

默认情况下你使用docker run -p 宿主端口:容器端口的配置,Docker会默认绑定到0.0.0.0地址,也就是该端口会对所有网络接口开放,公网设备也可以访问到容器服务,需要调整配置才能实现仅局域网访问。

方法1:端口映射时指定绑定局域网IP(最简便)

启动容器时,在-p参数前加上你Ubuntu主机的局域网IP地址即可,示例如下:

docker run -d -p 192.168.1.20:8080:80 nginx

上述命令中192.168.1.20是你的Ubuntu主机在局域网内的静态IP,配置后仅192.168.1.0/24网段的局域网设备可以通过192.168.1.20:8080访问容器服务,公网无法访问。
如果需要仅允许本机访问容器,可绑定回环地址:

docker run -d -p 127.0.0.1:8080:80 nginx

配置完成后可以用ss -tulpn | grep 8080命令查看端口绑定的地址,确认没有绑定到0.0.0.0即可。

方法2:通过UFW防火墙限制访问(Ubuntu系统通用)

如果已经启动了容器不方便重启调整,或者需要更灵活的访问规则,可以用Ubuntu自带的UFW防火墙配置拦截规则:

  • 首先允许局域网段访问容器映射的宿主端口,示例中宿主端口为8080,常见局域网段为192.168.0.0/16:
sudo ufw allow in from 192.168.0.0/16 to any port 8080
  • 然后拒绝所有其他地址访问该端口:
sudo ufw deny in from any to any port 8080
  • 开启UFW并确认规则生效:
sudo ufw enable
sudo ufw status

这种方式即使容器端口绑定了0.0.0.0,公网访问请求也会被防火墙拦截。

docker-compose配置参考

如果使用docker-compose部署,只需要在ports配置项前加上局域网IP即可,示例:

version: '3'
services:
  nginx:
    image: nginx
    ports:
      - "192.168.1.20:8080:80"

内容的提问来源于stack exchange,提问作者Michał Zieliński

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 18:51:03