可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I just downloaded Docker Toolbox for Windows 10 64bit today. I'm going through the tutorial. I'm receving the following error when trying to build an image using a Dockerfile.
Steps:
- Launched Docker Quickstart terminal.
- testdocker after creating it.
- Prepare Dockerfile as documented in "Build your own image" web link
- ran "docker build -t docker-whale ."
Error: $ docker build -t docker-whale .
unable to prepare context: unable to evaluate symlinks in Dockerfile path: GetFileAttributesEx C:\Users\Villanueva\Test\testdocker\Dockerfile: The system cannot find the file specified.
BTW: I tried several options mentioned @ https://github.com/docker/docker/issues/14339
$ docker info
Containers: 4
Running: 0
Paused: 0
Stopped: 4
Images: 2
Server Version: 1.10.1
Storage Driver: aufs
Root Dir: /mnt/sda1/var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 20
Dirperm1 Supported: true
Execution Driver: native-0.2
Logging Driver: json-file
Plugins:
Volume: local
Network: bridge null host
Kernel Version: 4.1.17-boot2docker
Operating System: Boot2Docker 1.10.1 (TCL 6.4.1); master : b03e158 - Thu Feb 11 22:34:01 UTC 2016
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 996.2 MiB
Name: default
ID: C7DS:CIAJ:FTSN:PCGD:ZW25:MQNG:H3HK:KRJL:G6FC:VPRW:SEWW:KP7B
Debug mode (server): true
File Descriptors: 32
Goroutines: 44
System Time: 2016-02-19T17:37:37.706076803Z
EventsListeners: 0
Init SHA1:
Init Path: /usr/local/bin/docker
Docker Root Dir: /mnt/sda1/var/lib/docker
Labels:
provider=virtualbox
回答1:
while executing following command:
"docker build -t docker-whale ."
check that Dockerfile is present in your current working directory.
回答2:
If you are working on windows 8 you would be using Docker toolbox.
From the mydockerbuild directory run the below command as your Dockerfile is a textfile
docker build -t docker-whale -f ./Dockerfile.txt .
回答3:
Just Remove the extension .txt from Dockerfile and run the command
docker build -t image-name
It will work for sure.
回答4:
I had named my file dockerfile instead of Dockerfile (capitalized), and once I changed that, it started processing my "Dockerfile".
回答5:
I have got this error (in MacBook) though I used correct command to create image,
docker build -t testimg .
Later I found that path is the problem. Just navigate to the correct path that contains docker file. Just double check your current working directory .Nothing to panic!
回答6:
In windows 10... period is first parameter
docker build . -t docker-whale
回答7:
That's just because Notepad add ".txt" at the end of Dockerfile
回答8:
In WSL, there seems to be a problem with path conversion. The location of the Dockerfile in Ubuntu (where I'm running docker and where Dockerfile lives) is "/home/sxw455/App1", but neither of these commands worked:
$ pwd
/home/sxw455/App1
$ ll
total 4
drwxrwxrwx 0 sxw455 sxw455 4096 Dec 11 19:28 ./
drwxr-xr-x 0 sxw455 sxw455 4096 Dec 11 19:25 ../
-rwxrwxrwx 1 sxw455 sxw455 531 Dec 11 19:26 Dockerfile*
-rwxrwxrwx 1 sxw455 sxw455 666 Dec 11 19:28 app.py*
-rwxrwxrwx 1 sxw455 sxw455 12 Dec 11 19:27 requirements.txt*
$ docker build -t friendlyhello .
unable to prepare context: unable to evaluate symlinks in Dockerfile path: GetFileAttributesEx C:\Windows\System32\Dockerfile: The system cannot find the file specified.
$ docker build -t friendlyhello "/home/sxw455/App1"
unable to prepare context: path "/home/sxw455/App1" not found
But in Windows, the actual path is:
C:\Users\sxw455\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\sxw455\App1
And so I had to do this (even though I ran it from bash):
$ docker build -t friendlyhello
"C:\Users\sxw455\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\sxw455\App1"
Sending build context to Docker daemon 5.12kB
Step 1/7 : FROM python:2.7-slim
---> 0dc3d8d47241
Step 2/7 : WORKDIR /app
---> Using cache
---> f739aa02ce04
Step 3/7 : COPY . /app
---> Using cache
---> 88686c524ae9
Step 4/7 : RUN pip install --trusted-host pypi.python.org -r requirements.txt
---> Using cache
---> b95f02b14f78
Step 5/7 : EXPOSE 80
---> Using cache
---> 0924dbc3f695
Step 6/7 : ENV NAME World
---> Using cache
---> 85c145785b87
Step 7/7 : CMD ["python", "app.py"]
---> Using cache
---> c2e43b7f0d4a
Successfully built c2e43b7f0d4a
Successfully tagged friendlyhello:latest
SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.
I had similar problems with environment variables during the initial installation, and followed some advice that said to install the Windows DockerCE and hack the environment variables rather than installing the Ubuntu DockerCE, because (I hope I remembered this correctly) that WSL does not fully implement systemctl. Once the Windows Docker CE installation is done and environment variables are set, docker then works fine under WSL/Ubuntu.
回答9:
I had originally created my Dockerfile in PowerShell and though I didn't see an extension on the file it showed as a PS File Type...once I created the file from Notepad++ being sure to select the "All types (.)" File Type with no extension on the File Name (Dockerfile). That allowed my image build command to complete successfully....Just make sure your Dockerfile has a Type of "File"...
回答10:
The problem is that the file name should be Dockerfile and not DockerFile or dockerfile it should be D capital followed by ockerfile in lower-case pls note
回答11:
To build Dockerfile save automated content in Dockerfile. not Dockerfile because while opening a file command:
$ notepad Dockerfile
(A text file is written so file cannot build)
To build file run:
$ notepad Dockerfile
and Now run:
$ docker build -t docker-whale .
Make sure you are in current directory of Dockerfile.
回答12:
I had created my DockerFile by VS2017 Docker Support tool and had the same error. After a while I realised I was not in the correct directory that contains the Dockerfile (~\source\repos\DockerWebApplication). Cd'ed to the correct file (~/source/repos/DockerWebApplication/DockerWebApplication) which was inside the project and successfully created the docker image.
回答13:
I got this on Windows when the path I was working in was under a Junction directory. So my fix was to not work under that path.
回答14:
On Mac it works for below command. (hope your .Dockerfile
is in your root directory).
docker build -t docker-whale -f .Dockerfile .
回答15:
The issue is related to the DockerFile creation procedure.
In order to work, open cmd, cd to the directory of interest and type:
abc>DockerFile
This will create a file called DockerFile inside your folder.
Now type:
notepad DockerFile
This will open the DockerFile file in notepad and you will have to copy/paste the standard code provided.
Save the file and now, finally, build your image with Docker typing:
docker build -t docker-whale .
This is working for me and I hope it helps others
回答16:
I tried this and it worked:
$ docker build -t test_dotnet_image
"C:\Users\ssundarababu\Documents\Docker\Learn\SimpleDockerfile"
Please see quotes+un-quotes around the foldername.
Note: In Folder "C:\Users\ssundarababu\Documents\Docker\Learn\SimpleDockerfile"
I have my Dockerfile.