CoreOS系统下Docker daemon端口2375连接失败求助
解决CoreOS上Docker Daemon连接失败的问题
我之前在CoreOS环境里也碰到过一模一样的问题,你的报错核心原因很明确:Docker Daemon根本没在监听你指定的2375 TCP端口。
为什么会出现这个问题?
CoreOS默认配置下,Docker Daemon只会通过Unix Socket(/var/run/docker.sock)提供服务,不会主动开启TCP端口监听。你手动设置了export DOCKER_HOST=tcp://127.0.0.1:2375,相当于让Docker客户端去连接一个根本没有服务在运行的端口,自然会出现连接被关闭的错误。
另外,Vagrant能正常运行和Docker Daemon的配置没有直接关联——Vagrant本身有独立的容器管理逻辑,不需要依赖这个TCP端口。
两种快速解决方法
方法1:取消TCP端口指定,用默认Socket连接
直接清除你之前设置的环境变量,让客户端用默认的Unix Socket连接:
unset DOCKER_HOST
之后再执行docker info,应该就能正常获取信息了。
方法2:修改Docker Daemon配置,开启TCP端口监听
如果确实需要用TCP端口连接,可以修改Daemon的配置文件:
- 检查并创建(如果不存在)Docker配置文件:
sudo touch /etc/docker/daemon.json - 编辑文件,添加TCP监听配置:
这里同时保留了Unix Socket和TCP端口,兼顾两种连接方式。{ "hosts": ["unix:///var/run/docker.sock", "tcp://127.0.0.1:2375"] } - 重启Docker Daemon让配置生效:
sudo systemctl restart docker - 验证端口是否监听:
看到输出里有ss -tulpn | grep docker127.0.0.1:2375就说明配置成功了,此时再执行docker info就能正常连接。
注意事项
如果需要对外开放TCP端口(不是仅本地127.0.0.1),一定要开启TLS加密认证,避免未授权的访问——CoreOS默认不开启TCP端口也是出于安全考量。
内容的提问来源于stack exchange,提问作者Steven Aguilar
相关产品推荐
相关产品推荐

