我承认,我是集装箱界的新手。但我设法让docker在我的W10上运行WSL2。我还可以使用docker UI并运行Containers/Apps或Images。因此,我相信基础设施已经到位并处于最新状态。然而,当我尝试最简单的Dockerfile时,它似乎也不起作用,我也不理解它给出的错误消息:这是Dockerfile:
FROM ubuntu:20.04
(是的,一个卑微的开始-或者一个极其精简的repo(
docker build Dockerfile
[+] Building 0.0s (2/2) FINISHED
=> ERROR [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 33B 0.0s
=> ERROR [internal] load .dockerignore 0.0s
=> => transferring context: 33B 0.0s
------
> [internal] load build definition from Dockerfile:
------
------
> [internal] load .dockerignore:
------
failed to solve with frontend dockerfile.v0: failed to build LLB: error from sender: Dockerfile is not a directory
您需要运行docker build -f [docker_file_name] .
(不要错过末尾的点(。
如果文件名为Dockerfile
,则不需要-f
和文件名。
我遇到了类似的问题,我使用windows的docker桌面。重新启动笔记本电脑,问题得到解决。希望它能帮助到别人。
首先检查Docker文件名(D应该是大写(,然后运行Docker build-f Dockerfile。(末尾点(。
我遇到了同样的问题,但有不同的解决方案(在Windows上(:
- 我在文件夹中打开了一个控制台;我的文件夹只包含
Dockerfile
Dockerfile
含量为FROM ubuntu:20.04
(与OP相同(- 运行
docker build
时知道我当前文件夹中有一个Dockerfile
- 我收到了OP的相同错误消息
- 我停止了Docker Desktop服务
- 再次运行
docker build
——得到"docker build" requires exactly 1 argument.
- 运行
docker build Dockerfile
--获得unable to prepare context: context must be a directory: C:zdockeraem_ubuntu20Dockerfile
- 运行
docker build .
--得到error during connect: This error may indicate that the docker daemon is not running.
- 重新启动Docker Desktop服务
- 运行
docker build .
——成功 - 结论:
docker build PATH
,其中PATH
必须是文件夹名称,并且该文件夹必须包含Dockerfile
对我来说,我在与Dockerfile相同的目录中有一个Linux符号链接。在Windows10上运行docker build
时,它给了我ERROR [internal] load build definition from Dockerfile
。我怀疑Dockerdocker build .
扫描目录,如果它不能读取一个文件,就会崩溃。对我来说,我用WSL安装了目录,并删除了symblink。
在我的案例中,当在错误的目录中运行docker
命令时,我遇到了这个错误。只需cd
到Dockerfile所在的目录,一切都会好起来。