You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows本地运行Linux Docker镜像构建报错及解决求助

报错原因及解决方法

报错原因

你的Docker引擎当前运行在Windows容器模式下,尽管Dockerfile里指定了Linux基础镜像openjdk:11-jdk,但Docker会强制在Windows容器环境中执行构建步骤——此时RUN命令会通过PowerShell执行,而apt-get是Debian/Ubuntu系Linux的包管理命令,PowerShell无法识别,因此抛出"未找到命令"的错误。

解决方法

1. 切换Docker引擎到Linux容器模式

因为你未使用Docker Desktop,需通过命令行重启dockerd并指定Linux模式:

  • 先终止当前运行的dockerd进程(可通过任务管理器结束dockerd.exe)
  • 执行以下命令启动Linux模式的Docker引擎:
    dockerd -H tcp://localhost:2376 --data-root D:\ProgramData\docker --storage-driver overlay2
    

    注:overlay2是Linux容器推荐的存储驱动,若系统不支持,可尝试aufs(需提前启用相关特性)。

2. 验证容器模式

启动完成后,执行以下命令确认模式切换成功:

docker info

查看输出中的OSType字段,若显示为linux则说明切换生效。

3. 重新构建镜像

再次执行你的构建命令即可:

docker build --file "D:\Dockerization\build-apex.Dockerfile" --build-arg BASE_DIR=. . -t app-build:latest

额外排查(可选)

若之前拉取的openjdk:11-jdk意外是Windows版本镜像,可先删除后重新拉取Linux版本:

docker rmi openjdk:11-jdk
docker pull openjdk:11-jdk

内容的提问来源于stack exchange,提问作者monaco Stephen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 06:55:06