前言
有些服务只需要在本地访问,不需要向外暴露端口,不然会有安全隐患,总有一大堆机器扫描你的端口,尝试接入你的服务。
通过 Docker 暴露的端口,即使没有在防火墙中手动放行,在外部还是可以访问到。
解决办法
在进行端口映射的时候指定监听地址为127.0.0.1
,如127.0.0.1:3000:80
。在没指定的情况下,如3000:80
,监听地址为0.0.0.0
。
这在使用docker run
命令和docker-compose
命令的时候都可以生效。
docker run
命令示例如下。
docker run -p 127.0.0.1:80:80 nginx
使用docker-compose
命令时,docker-compose.yml
内容示例如下。
version: '3.3'
services:
nginx:
ports:
- '127.0.0.1:80:80'
image: nginx