当前位置: 首页 > 知识库问答 >
问题:

docker生成错误检查上下文:“无法统计”\\?\C:\Users\username\AppData\Local\Application Data''

葛驰
2023-03-14

docker build在windows 10上失败,

docker安装成功后,使用下面的命令创建docker映像。

如果有人解决了同样的问题,请告诉我。

共有3个答案

华鹭洋
2023-03-14

运行docker build命令时,docker客户端会收集需要发送到docker守护程序的所有文件,以便生成映像。这个文件包被称为上下文。

哪些文件和目录被添加到上下文中
上下文包含传递给docker build命令的目录中的所有文件和子目录。例如,当您调用docker build img:tag dir_to_build时,上下文将是dir_to_build中的所有内容。

如果Docker客户端没有足够的权限读取上下文中的某些文件,则会得到错误检查上下文:'can't stat'

这个问题有两个解决方案:

  1. 将Dockerfile和构建映像所需的文件一起移动到不包含其他文件/子目录的单独目录separate_dir。现在调用docker build img:tag separate_dir时,上下文将只包含构建图像所需的实际文件。(如果错误仍然存在,则意味着您需要更改文件的权限,以便Docker客户端可以访问这些文件)
  2. 使用从上下文中排除文件。dockerignore文件。大多数时候,这可能是你想要做的

从官方Docker留档:

在docker CLI将上下文发送到docker守护程序之前,它会查找名为的文件。dockerignore位于上下文的根目录中。如果此文件存在,CLI将修改上下文,以排除与其中模式匹配的文件和目录。

我会创建一个。DockerInore文件位于与Dockerfile相同的目录中:~/。dockerignore包含以下内容:

# By default, ignore everything
*
# Add exception for the directories you actually want to include in the context
!project-source-code
!project-config-dir
# source files
!*.py
!*.sh

进一步阅读:

  • Docker官方文件
  • 我觉得这个博客很有帮助

狄珂
2023-03-14

只需创建一个新目录并输入它:

$ mkdir dockerfiles
$ cd dockerfiles

在该目录中创建您的文件:

$ touch Dockerfile

编辑它并使用vi添加命令:

$ vi Dockerfile

Fnally运行它:

$ docker build -t tag .
慕才
2023-03-14

问题是当前用户不是目录的所有者
我在Ubuntu中遇到了同样的问题,这一行解决了这个问题:

Ubuntu

sudo chown -R $USER <path-to-folder>

来源:更改文件夹权限和所有权

窗户

此链接显示了如何在Windows中执行相同操作:
在Windows 10中通过命令提示符获取文件/文件夹的所有权

 类似资料: