Mac端Docker运行的Jenkins无法连接VirtualBox内Ubuntu的Docker daemon
Jenkins无法连接Ubuntu虚拟机Docker daemon排查步骤
1. 先验证Ubuntu端Docker TCP端口是否正常启用
- 修改
docker.service配置后必须执行配置重载和Docker重启才能生效:
sudo systemctl daemon-reload sudo systemctl restart docker
- 重启后执行
ss -tulnp | grep 4243,确认4243端口处于LISTEN状态,再执行ps aux | grep dockerd,查看dockerd进程参数是否携带-H tcp://0.0.0.0:4243,如果没有就是配置未正确加载。 - 确认Ubuntu防火墙已放通4243端口,VirtualBox网络配置已允许Mac宿主机访问虚拟机的4243端口,可在Mac终端执行
telnet <Ubuntu虚拟机IP> 4243验证连通性。
2. 修正Jenkins端Docker调用配置
- 你配置的Docker云是Jenkins代理节点调度规则,若流水线中直接调用
docker build等原生Docker命令,默认会读取当前执行环境的/var/run/docker.sock,不会自动使用你配置的远端Docker地址,需在流水线中显式指定DOCKER_HOST环境变量:
pipeline { agent any environment { DOCKER_HOST = "tcp://<替换为你的Ubuntu虚拟机IP>:4243" } stages { stage("构建镜像") { steps { sh "docker build -t your-image:tag ." } } } }
- 若使用Jenkins Docker插件执行构建,需在插件的Docker实例配置中显式填写远端TCP地址,不要留空使用默认的Unix socket路径。
3. 注意事项
本地测试可直接开放4243端口,生产环境建议配置Docker TLS认证后再开放TCP端口,避免未授权访问风险。
内容的提问来源于stack exchange,提问作者Johnny Bravo
相关产品推荐
相关产品推荐

