Ich habe heute Docker Toolbox für Windows 10 64bit heruntergeladen. Ich gehe das Tutorial durch. Beim Versuch, ein Image mit einer Docker-Datei zu erstellen, wird der folgende Fehler angezeigt.
Schritte:
- Docker Quickstart-Terminal gestartet.
- Testdocker nach dem Erstellen.
- Bereiten Sie Dockerfile wie im Weblink "Erstellen Sie Ihr eigenes Bild" dokumentiert vor
- lief unter Befehl
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.
Übrigens: Ich habe verschiedene Optionen ausprobiert, die unter https://github.com/docker/docker/issues/14339 erwähnt wurden
$ 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
docker
dockerfile
villanux
quelle
quelle
docker build -t XXX --file ./Dockefile
es sein könnte, weil Sie den Dateinamen falsch verstanden haben, fehlt der R.Antworten:
während Sie den folgenden Befehl ausführen:
Überprüfen Sie, ob Dockerfile in Ihrem aktuellen Arbeitsverzeichnis vorhanden ist.
quelle
f
Flag schreiben , wie indocker build -f Dockerfile-dev.yaml -t my_container .
Dies kann nützlich sein, wenn Sie mehrere Dockerfile in Ihrem Projekt haben, beispielsweise eine pro Umgebung. Gleiches gilt für Docker-Compose. Das Einfügen in verschiedene Unterverzeichnisse funktioniert nicht, da context (.
) nicht übereinstimmt.Es ist Schande!
Die Fehlermeldung ist irreführend. Das Problem hat eigentlich nichts mit Symlinks zu tun. Normalerweise kann Docker die Docker-Datei nicht finden , die beschreibt, .
Typische Gründe sind:
Es muss aufgerufen werden
Dockerfile
. Wenn es heißt, zum Beispieldockerfile
,.Dockerfile
,Dockerfile.txt
oder andere, wird es nicht gefunden werden.Wenn Sie sagen
docker build contextdir
, muss sich die Docker-Datei in befindencontextdir/Dockerfile
. Wenn Sie es haben, sagen Sie,./Dockerfile
, wird es nicht gefunden.Klingt albern? Nun, ich habe die obige Fehlermeldung von meinem GitLab CI erhalten, nachdem ich eine nette Docker-Datei geschrieben hatte, aber vergessen habe, sie einzuchecken. Dumm? Sicher. Unwahrscheinlich? Nein.
Es ist nicht die einzige Schande ...
Nicht nur diese eine Fehlermeldung ist vage und verwirrend. Im Allgemeinen finde ich einige der Docker-Konzepte und einen Großteil der Dokumentation semantisch ungenau.
Einer der wirklich schlechten Punkte ist der Begriff "Tag" (Stand August 2019). Je nachdem, wo Sie in der Dokumentation nachsehen, werden alle folgenden Dinge gesagt (mehr oder weniger klar):
tag
Befehl, aber das von Ihnen angegebene Argument wird nicht als Tag oder Tag-Name bezeichnet, sondern als Bildname.tag
Befehlsargument ist der Tag-Name optional, der Bildname ist jedoch obligatorisch. Offensichtlich.docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
x
in (oder früher, aber irgendwie magisch immer an seinem Bildnamen) auf diesem Hostx
(in einer Registrierung) leben. Wenn Sie auf ein solches Bild zugreifen möchten, müssen Sie diesen Namen mehr oder weniger mit dem Hostpräfix verwendenx
.x
, weil es das Bild "pusht"x
ein separater Vorgang ist.Wenn Sie dadurch verwirrt sind, ist es nicht Ihre Schuld.
Ende des Geschwätzes.
quelle
Wenn Sie unter Windows 8 arbeiten, verwenden Sie die Docker-Toolbox. Führen Sie im Verzeichnis mydockerbuild den folgenden Befehl aus, da Ihre Docker-Datei eine Textdatei ist
quelle
docker build -t friendlyhello -f ./Dockerfile.txt .
Der Name der Datei sollte sein
Dockerfile
und nicht.Dockerfile
. Die Datei sollte keine Erweiterung haben.quelle
Ich hatte meine Docker-Datei anstelle von Docker-Datei (groß geschrieben) benannt, und als ich das geändert hatte, begann sie mit der Verarbeitung meiner "Docker-Datei".
quelle
Entfernen Sie einfach die Erweiterung .txt aus Dockerfile und führen Sie den Befehl aus
Es wird sicher funktionieren.
quelle
Ich habe diesen Fehler (in MacBook), obwohl ich den richtigen Befehl verwendet habe, um ein Bild zu erstellen.
Später fand ich, dass der Weg das Problem ist. Navigieren Sie einfach zum richtigen Pfad, der die Docker-Datei enthält. Überprüfen Sie einfach Ihr aktuelles Arbeitsverzeichnis. Keine Panik!
quelle
In Windows 10 ... ist Periode der erste Parameter
docker build . -t docker-whale
quelle
docker build -t docker-whale .
ist ein gültiger BefehlDas liegt nur daran, dass Notepad am Ende von Dockerfile ".txt" hinzufügt
quelle
In der WSL scheint es ein Problem mit der Pfadkonvertierung zu geben. Der Speicherort der Docker-Datei in Ubuntu (wo Docker ausgeführt wird und wo Dockerfile lebt) ist "/ home / sxw455 / App1", aber keiner dieser Befehle hat funktioniert:
In Windows lautet der eigentliche Pfad jedoch:
Und so musste ich das tun (obwohl ich es von Bash ausgeführt habe):
Ich hatte während der Erstinstallation ähnliche Probleme mit Umgebungsvariablen und befolgte einige Ratschläge, die besagten, Windows DockerCE zu installieren und die Umgebungsvariablen zu hacken, anstatt Ubuntu DockerCE zu installieren, da (ich hoffe, ich habe mich richtig daran erinnert) WSL nicht vollständig implementiert ist systemctl. Sobald die Windows Docker CE-Installation abgeschlossen und die Umgebungsvariablen festgelegt sind, funktioniert Docker unter WSL / Ubuntu einwandfrei.
quelle
Ich hatte mein DockerFile von VS2017 Docker Support Tool erstellt und hatte den gleichen Fehler. Nach einer Weile wurde mir klar, dass ich mich nicht im richtigen Verzeichnis befand, das die Docker-Datei enthält
(~\source\repos\DockerWebApplication\)
. cd'ed auf die richtige Datei,(~/source/repos/DockerWebApplication/DockerWebApplication)
die sich im Projekt befand und das Docker-Image erfolgreich erstellt hat.quelle
Der folgende Befehl hat bei mir funktioniert. Docker build -t docker-whale -f Dockerfile.txt.
quelle
Zwei Möglichkeiten, eine Docker-Datei zu erstellen:
Sie können entscheiden, den Dateinamen, aus dem erstellt werden soll, nicht anzugeben, sondern nur einen Pfad angeben (auf diese Weise muss der Dateiname
Dockerfile
ohne angehängte Erweiterung sein, z. B.:docker build -t docker-whale:tag path/to/Dockerfile
oder
Sie können eine Datei mit angeben,
-f
und es spielt keine Rolle, welche Erweiterung (innerhalb des angemessenen Rahmens).txt
,.dockerfile
,.Dockerfile
etc ..) Sie sich entscheiden, zum Beispieldocker build -t docker-whale:tag /path/to/file -f docker-whale.dockerfile
.quelle
Ich hatte meine Docker-Datei ursprünglich in PowerShell erstellt und obwohl ich keine Erweiterung in der Datei sah, wurde sie als PS-Dateityp angezeigt ... Nachdem ich die Datei aus Notepad ++ erstellt hatte, musste ich die Datei "Alle Typen ( . )" Auswählen Geben Sie den Dateinamen (Dockerfile) ohne Erweiterung ein. Dadurch konnte mein Image-Build-Befehl erfolgreich ausgeführt werden. Stellen Sie einfach sicher, dass Ihre Docker-Datei den Typ "Datei" hat.
quelle
Das Problem ist, dass der Dateiname Dockerfile und nicht DockerFile oder Dockerfile sein sollte, sondern D-Großbuchstaben, gefolgt von ockerfile in Kleinbuchstaben
quelle
Stellen Sie sicher, dass Sie
DOCKERfile
sich im ROOT des Anwendungsverzeichnisses befinden. Ich hatte meins in src, was zu diesem Fehler führte, da Docker den Pfad zu nicht gefunden hatDOCKERfile
quelle
Um Dockerfile zu erstellen, speichern Sie automatisierten Inhalt in Dockerfile. nicht Dockerfile, da beim Öffnen eines Dateibefehls:
(Eine Textdatei wird geschrieben, damit keine Datei erstellt werden kann.)
So erstellen Sie einen Dateilauf:
und jetzt laufen:
Stellen Sie sicher, dass Sie sich im aktuellen Verzeichnis von Dockerfile befinden.
quelle
Stellen Sie vor allem sicher, dass Ihr Dateiname lautet
Dockerfile
nicht funktioniert, wenn Sie einen anderen Namen verwenden (zumindest nicht für mich).Auch wenn Sie sich in demselben Verzeichnis befinden, in dem sich die Docker-Datei befindet, verwenden Sie ein
.
dhdocker build -t Myubuntu1:v1 .
oder den absoluten Pfad, dhdocker build -t Myubuntu1:v1 /Users/<username>/Desktop/Docker
quelle
I mein Fall (unter Windows 10 ausführen)
1) Benennen Sie die Datei
myDockerFile.Dockerfile
inDockerfile
( ohne Dateierweiterung) um.Führen Sie dann diesen Befehl von außerhalb des Ordners aus:
Dies funktioniert für mich und meine Arbeitskollegen, hoffe, dass das auch für Sie funktioniert
quelle
Stellen Sie sicher, dass der Dateiname "Dockerfile" nicht mit einer Erweiterung gespeichert ist. Erstellen Sie einfach eine Datei ohne Erweiterung.
Stellen Sie sicher, dass sich Dockerfile in demselben Verzeichnis befindet, aus dem Sie das Docker-Image erstellen möchten.
quelle
Ich habe dies unter Windows erhalten, als sich der Pfad, in dem ich arbeitete, in einem Junction-Verzeichnis befand. Mein Fix war also, nicht unter diesem Pfad zu arbeiten.
quelle
Auf dem Mac funktioniert es für den folgenden Befehl. (Ich hoffe, Sie
.Dockerfile
befinden sich in Ihrem Stammverzeichnis).quelle
Das Problem hängt mit dem Erstellungsverfahren für DockerFile zusammen.
Um zu arbeiten, öffnen Sie cmd, cd in das Verzeichnis von Interesse und geben Sie Folgendes ein:
Dadurch wird eine Datei namens DockerFile in Ihrem Ordner erstellt.
Geben Sie nun Folgendes ein:
Dadurch wird die DockerFile-Datei im Editor geöffnet und Sie müssen den bereitgestellten Standardcode kopieren / einfügen.
Speichern Sie die Datei und erstellen Sie schließlich Ihr Bild mit Docker-Eingabe:
Das funktioniert bei mir und ich hoffe es hilft anderen
quelle
Falls wir mehrere Docker-Dateien in unserer Umgebung haben, reicht Dockerfile nicht aus.
Erzwingen Sie daher den Befehl (-f Argument), um Ihre Docker-Datei (Dockerfile.ihub) zu verwenden.
quelle
Ich habe fälschlicherweise erstellt
Dockerfile.txt
in meinem Arbeitsverzeichnis erstellt, was zu dem oben genannten Fehler führtebuild
Das Update bestand darin , die
.txt
Erweiterung aus der Datei zu entfernen .Der Dateiname sollte
Dockerfile
nur ohne Erweiterung sein .quelle
Führen Sie es
docker build -t getting-started .
in Ihrem Projektverzeichnis aus und stellen Sie sicher, dass Dockerfile vorhanden ist und keine.txt
Erweiterung hat. Wenn Sie unter Windows arbeiten, überprüfen Sie die 'Dateinamenerweiterung' auf der Registerkarte "Ansicht" im Datei-Explorer, um anzuzeigen, ob .txt vorhanden ist oder nicht, und entfernen Sie sie, wenn erstere wahr ist. Viel Glück.quelle
Ich hatte auch die gleichen Probleme und es wurde behoben, als ich eine Datei mit dem Namen DockerFile erstellte und alle Befehle erwähnte, die beim Erstellen eines Bildes ausgeführt werden wollten.
quelle
Ich habe es versucht und es hat funktioniert:
Bitte beachten Sie Anführungszeichen + Anführungszeichen um den Ordnernamen.
Hinweis: Im Ordner habe
"C:\Users\ssundarababu\Documents\Docker\Learn\SimpleDockerfile"
ich meine Docker-Datei.quelle
So erstellen Sie ein Image über die Befehlszeile in Windows / Linux. 1. Erstellen Sie eine Docker-Datei in Ihrem aktuellen Verzeichnis. Beispiel: FROM ubuntu RUN apt-get update RUN apt-get -y installiere apache2 ADD. / var / www / html ENTRYPOINT apachectl -D FOREGROUND ENV-Name Devops_Docker 2. Speichern Sie ihn nicht mit der Erweiterung .txt. 3. Führen Sie unter Befehlszeile den Befehl Docker Build aus. -t apache2image
quelle