Docker守护进程端口配置求助:需限定IP范围,IP/主机名连接失败
解决Docker Daemon仅能通过localhost访问的问题
我之前也碰到过一模一样的情况!这基本是因为你配置Docker daemon时,只把它绑定到了localhost(也就是127.0.0.1回环地址),导致外部IP或者主机名无法连接。下面分系统给你一步步解决的办法:
1. Linux系统配置步骤
首先检查Docker的核心配置文件/etc/docker/daemon.json(如果没有这个文件就直接创建):
- 打开文件编辑:
sudo nano /etc/docker/daemon.json - 添加或修改
hosts字段,把绑定地址改成你允许的IP范围对应的接口。比如:- 如果你想允许所有本机可用IP访问(适合测试或内部可信网络):
{ "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"] } - 如果你只想绑定到特定IP(比如你的服务器IP是
192.168.1.100):{ "hosts": ["tcp://192.168.1.100:2375", "unix:///var/run/docker.sock"] }
- 如果你想允许所有本机可用IP访问(适合测试或内部可信网络):
- 保存文件后,重启Docker服务生效:
sudo systemctl restart docker - 验证绑定是否正确:执行
ss -tulpn | grep dockerd,你应该能看到dockerd监听在你指定的IP和2375端口上。
2. Docker Desktop(Windows/macOS)配置步骤
- 打开Docker Desktop,点击右上角的设置图标,找到Docker Engine选项卡
- 在配置JSON里添加
hosts字段:- Windows系统:
{ "hosts": ["tcp://0.0.0.0:2375", "npipe:////./pipe/docker_engine"] } - macOS系统:
{ "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"] }
0.0.0.0换成你需要绑定的特定IP - Windows系统:
- 点击Apply & Restart,等待Docker重启完成
关键安全提醒
直接暴露未加密的2375端口风险很高!一定要配合防火墙规则限制访问:
- Linux:用
ufw或者iptables只允许你指定的IP范围访问2375端口,比如:sudo ufw allow from 192.168.1.0/24 to any port 2375 - Windows/macOS:在系统防火墙里添加规则,仅允许指定IP段访问2375端口
测试连接
配置完成后,试试用你的IP或主机名连接:
docker -H tcp://your-server-ip:2375 ps # 或者用主机名 docker -H tcp://your-hostname:2375 ps
这时候应该就能正常返回容器列表了!
内容的提问来源于stack exchange,提问作者Tehreem Nisa
相关产品推荐
相关产品推荐

