docker build失败,
成功安装docker后,使用以下命令构建docker镜像。
docker build -t drtuts:latest。 面对下面的问题。
如果有人解决了同样的问题,请告诉我。
答案 0 :(得分:19)
只需创建一个新目录并输入它:
$ mkdir dockerfiles
$ cd dockerfiles
在该目录中创建您的文件:
$ touch Dockerfile
编辑它并使用vi
添加命令:
$ vi Dockerfile
最终运行它:
$ docker build -t tag
答案 1 :(得分:13)
当您运行 docker build
命令时,Docker 客户端会收集需要发送到 Docker 守护程序的所有文件,以便它可以构建映像。这个“文件包”称为上下文。
将哪些文件和目录添加到上下文中?
上下文包含您传递给 docker build
命令的目录中的所有文件和子目录。例如,当您调用 docker build img:tag dir_to_build
时,上下文将是 dir_to_build
中的所有内容。
如果 Docker 客户端没有足够的权限来读取上下文中的某些文件,您会收到 error checking context: 'can't stat ' <FILENAME>
错误。
这个问题有两种解决方案:
separate_dir
。当您现在调用 docker build img:tag separate_dir
时,上下文将仅包含构建映像实际需要的文件。 (如果错误仍然存在,则意味着您需要更改文件的权限,以便 Docker 客户端可以访问它们)。From the official Docker documentation:
<块引用>在 docker CLI 将上下文发送到 docker 守护程序之前,它会在上下文的根目录中查找名为 .dockerignore 的文件。如果此文件存在,CLI 会修改上下文以排除与其中的模式匹配的文件和目录。
我会在与 .dockerignore
相同的目录中创建一个 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
进一步阅读:
答案 2 :(得分:9)
问题在于当前用户不是目录的所有者。
我在Ubuntu中遇到了同样的问题,此行解决了该问题:
Ubuntu
sudo chown -R $USER <path-to-folder>
来源:Change folder permissions and ownership
Windows
此链接显示了如何在Windows中执行相同操作:
Take Ownership of a File / Folder through Command Prompt in Windows 10
答案 3 :(得分:3)
我在Windows 10 Home版本上也收到了相同的错误消息。
我通过以下步骤解决了这个问题:
现在运行命令{来自C:\ Users \(用户名)目录}: docker build -t ./dockerfiles
它像微风一样!
答案 4 :(得分:2)
Docker仅向文件所有者授予读取和写入权限,有时,如果尝试构建的用户与所有者不同,则会抛出该错误。
您可以创建一个docker组并在其中添加用户。 在debian中如下所示
sudo groupadd docker
sudo usermod -aG docker $USER
答案 5 :(得分:2)
我遇到了同样的问题,但是使用Linux
$ docker build -t foramontano/openldap-schema:0.1.0 --rm .
$ error checking context: 'can't stat '/home/isidoronm/foramontano/openldap_docker/.docker/config/cn=config''.
我能够通过包括日志中引用的目录(/home/isidoronm/foramontano/openldap_docker/.docker)来解决此问题。我位于目录中的dockerignore文件中有Dockerfile文件。(/ home / isidoronm / foramontano / openldap_docker)
isidoronm@vps811154:~/foramontano/openldap_docker$ ls -al
total 48
drwxrwxr-x 5 isidoronm isidoronm 4096 Jun 16 18:04 .
drwxrwxr-x 9 isidoronm isidoronm 4096 Jun 15 17:01 ..
drwxrwxr-x 4 isidoronm isidoronm 4096 Jun 16 17:08 .docker
-rw-rw-r-- 1 isidoronm isidoronm 43 Jun 13 17:25 .dockerignore
-rw-rw-r-- 1 isidoronm isidoronm 214 Jun 9 22:04 .env
drwxrwxr-x 8 isidoronm isidoronm 4096 Jun 13 17:37 .git
-rw-rw-r-- 1 isidoronm isidoronm 5 Jun 13 17:25 .gitignore
-rw-rw-r-- 1 isidoronm isidoronm 408 Jun 16 18:03 Dockerfile
-rw-rw-r-- 1 isidoronm isidoronm 1106 Jun 16 17:10 Makefile
-rw-rw-r-- 1 isidoronm isidoronm 18 Jun 13 17:36 README.md
-rw-rw-r-- 1 isidoronm isidoronm 1877 Jun 12 12:11 docker-compose.yaml
drwxrwxr-x 3 isidoronm isidoronm 4096 Jun 13 10:51 service
也许在Windows 10中是类似的东西。
答案 6 :(得分:1)
这是我在Windows 10上有效的步骤。以管理员身份打开命令提示符窗口:
cd c:\users\ashok\Documents
mkdir dockerfiles
cd dockerfiles
touch dockerfile
notepad dockerfile # Write/paste here the contents of dockerfile
docker build -t jupyternotebook -f dockerfile .
答案 7 :(得分:1)
我有同样的问题: 错误检查上下文:“无权读取'\?\ C:\ Users \ userprofile \ AppData \ Local \ AMD \ DxCache \ 36068d231d1a87cd8b4bf677054f884d500b364064779e16..bin”。
一直在咆哮这个问题,尝试运行命令和其他开关的权限没有问题,但是没有用。
创建了dockerfiles文件夹,并将docker文件放在此处,然后从文件夹路径运行命令
C:\ Users \ ShaikhNaushad \ dockerfiles> docker build -t naushad / debian。
它奏效了
答案 8 :(得分:1)
我在Ubuntu中遇到了同样的问题,我只是在 docker build .....
之前添加了 sudo 。答案 9 :(得分:0)
由于权限问题,导致此问题。
我建议检查受尊敬的用户的权限,该权限可在Dockerfile中访问。
任何路径都没错。
答案 10 :(得分:0)
我在Windows 10上遇到了类似的情况,并能够使用以下方法解决它:
docker build .
命令似乎您在Windows 10中使用bash shell,当我尝试使用bash shell时,甚至都没有将docker识别为命令(可以使用docker --version
进行检查)。
答案 11 :(得分:0)
在Windows 10上
//在记事本打开后键入您的docker命令,然后保存您的 Dockerfile。 回到命令行类型“ python-hello-world”。
答案 12 :(得分:0)
我正在写,因为这对使用 apparmor
的人有帮助我在Ubuntu机器上也遇到了这个问题。发生这种情况是因为我运行了“ aa-genprof docker” 命令来扫描“ docker” 命令以创建apparmor配置文件。因此,扫描的进程在目录“ / etc / apparmor.d” 中创建了文件 usr.bin.docker ,该文件为docker命令添加了一些权限。因此,在删除该文件并重新启动计算机之后,泊坞窗再次完美运行。
答案 13 :(得分:0)
如果您是在Mac上带着这个问题来到这里,对我来说,我只需要从包含Dockerfile的目录中退出cd,然后再次进入cd并重新运行命令即可。
答案 14 :(得分:0)
在尝试从放置在/Volumes/work
中的Dockerfile构建Docker映像时,我遇到了相同的问题。当我在dockerfiles
中创建文件夹/Volumes/work
并将Dockerfile放在其中时,它工作正常。