要查看 Docker 容器的端口映射情况,可以使用以下几种方法:
docker ps
命令docker ps
这会列出所有运行中的容器,其中 PORTS
列会显示端口映射情况,格式为 主机端口:容器端口
。
docker port
命令docker port <容器名称或ID>
这会显示指定容器的所有端口映射。
docker inspect
命令docker inspect <容器名称或ID> | grep -i port
或者更精确地查看网络设置:
docker inspect -f '{{range $p, $conf := .NetworkSettings.Ports}}{{$p}} -> {{(index $conf 0).HostPort}}{{"\n"}}{{end}}' <容器名称或ID>
Docker 的端口映射实际上是通过 iptables 实现的,可以查看 NAT 表:
sudo iptables -t nat -L -n
netstat -tulnp | grep docker
# 或
ss -tulnp | grep docker
Docker 端口映射通常涉及以下接口:
- 0.0.0.0
- 表示监听所有网络接口
- 127.0.0.1
- 仅监听本地回环接口
- 特定 IP 地址 - 只监听指定网络接口
如果需要指定映射到特定接口,可以在运行容器时使用 -p
参数:
docker run -p 127.0.0.1:8080:80 nginx
这样,只有通过本地回环接口才能访问容器的 80 端口。