Spring Boot 2.7执行mvn spring-boot:build-image构建Docker镜像失败求助
解决Spring Boot Maven Plugin构建Docker镜像时连接Docker Daemon失败的问题
这个错误提示[2] No such file or directory,核心是Maven插件无法找到Docker Daemon的连接入口,以下是针对性的解决步骤:
确认Docker Daemon处于运行状态
- Linux系统执行
systemctl status docker查看服务状态,未启动则运行systemctl start docker启动; - Windows/macOS直接查看Docker Desktop托盘图标,确保程序正常运行,未启动则打开Docker Desktop。
- Linux系统执行
检查Docker Socket路径配置
默认Docker Unix socket路径为/var/run/docker.sock,如果你的Docker使用了自定义路径,需要在pom.xml的插件配置中指定:<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <docker> <host>unix:///你的自定义路径/docker.sock</host> </docker> </configuration> </plugin>Windows系统默认使用npipe协议,路径为
npipe:////./pipe/docker_engine,确保插件配置或环境变量指向该地址。修复Docker Socket权限问题(Linux专属)
当前用户可能没有访问Docker socket的权限,两种解决方式:- 临时授权(简单但重启后失效):
sudo chmod 666 /var/run/docker.sock - 将用户加入docker组(永久生效,更安全):
执行后需重新登录会话才能生效。sudo usermod -aG docker $USER
- 临时授权(简单但重启后失效):
配置DOCKER_HOST环境变量
直接通过环境变量告知Maven插件Docker Daemon的地址:- Linux/macOS终端:
export DOCKER_HOST=unix:///var/run/docker.sock - Windows命令行:
set DOCKER_HOST=npipe:////./pipe/docker_engine - Windows PowerShell:
$env:DOCKER_HOST = "npipe:////./pipe/docker_engine"
- Linux/macOS终端:
检查Docker Desktop配置(Windows/macOS)
打开Docker Desktop的设置面板,若使用TCP连接,确保Expose daemon on tcp://localhost:2375 without TLS(或带TLS的2376端口)选项已勾选;
若勾选了2376带TLS,还需设置DOCKER_TLS_VERIFY=1,并指定DOCKER_CERT_PATH指向证书存放目录。
内容的提问来源于stack exchange,提问作者Dennis Githinji Wakahia
相关产品推荐
相关产品推荐

