Docker 在启动和运行时会使用多种端口,具体取决于配置的容器和服务。以下是主要分类和常见端口说明:
注意:生产环境应避免开放 2375 端口,需通过 TLS 加密(2376)或使用 SSH 隧道。
Docker 容器通过 -p
或 --publish
参数将容器端口绑定到宿主机端口,例如:
docker run -p 80:8080 nginx # 宿主机80 → 容器8080
-p 8080
不指定宿主机端口实现)。--dns
参数),可能占用 53 端口。服务 | 容器内默认端口 | 常用协议 |
---|---|---|
Nginx | 80, 443 | TCP |
MySQL | 3306 | TCP |
PostgreSQL | 5432 | TCP |
Redis | 6379 | TCP |
MongoDB | 27017 | TCP |
Apache | 80, 443 | TCP |
查看宿主机已映射的端口:
docker ps --format "table {{.Names}}\t{{.Ports}}"
或
ss -tulnp | grep docker
查看容器内部端口:
docker inspect -f '{{range $p, $conf := .NetworkSettings.Ports}}{{$p}} -> {{(index $conf 0).HostPort}}{{"\n"}}{{end}}' <容器名>
iptables
/ufw
)控制访问。通过以上分类,可以清晰了解 Docker 可能占用的端口范围。实际使用中,需根据具体容器和网络配置进一步检查。