Je viens de télécharger Docker Toolbox pour Windows 10 64 bits aujourd'hui. Je suis en train de suivre le tutoriel. Je reçois l'erreur suivante en essayant de créer une image à l'aide d'un Dockerfile.
Pas:
- Lancement du terminal Docker Quickstart.
- testdocker après sa création.
- Préparez Dockerfile comme indiqué dans le lien Web "Créer votre propre image"
- a couru sous la commande
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: j'ai essayé plusieurs options mentionnées @ 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
docker
dockerfile
villanux
la source
la source
docker build -t XXX --file ./Dockefile
c'est peut-être parce que vous avez un nom de fichier erroné, il manque le R.Réponses:
lors de l'exécution de la commande suivante:
vérifiez que Dockerfile est présent dans votre répertoire de travail actuel.
la source
f
indicateur, comme dansdocker build -f Dockerfile-dev.yaml -t my_container .
Ceci peut s'avérer utile si vous avez plusieurs Dockerfile dans votre projet, un par environnement, par exemple. La même chose s'applique à docker-compose. Les placer dans différents sous-répertoires ne fonctionnera pas, car le contexte (.
) ne correspondra pas.C'est dommage!
Le message d'erreur est trompeur. Le problème n'a vraiment rien à voir avec les liens symboliques. C'est généralement seulement que docker ne peut pas trouver le Dockerfile décrivant la construction.
Les raisons typiques sont les suivantes:
Il doit être appelé
Dockerfile
. Si elle est appelée, par exemple,dockerfile
,.Dockerfile
,Dockerfile.txt
ou autre, il ne sera pas trouvée.Si vous dites
docker build contextdir
, le Dockerfile doit être àcontextdir/Dockerfile
. Si vous l'avez, disons, à la./Dockerfile
place, il ne sera pas trouvé.Cela semble idiot? Eh bien, j'ai reçu le message d'erreur ci-dessus de mon GitLab CI après avoir écrit un joli Dockerfile, mais j'ai oublié de l'enregistrer. Silly? Sûr. Improbable? Non.
Ce n'est pas la seule honte ...
Non seulement ce message d'erreur est vague et déroutant. Je trouve généralement que certains des concepts de docker et une grande partie de la documentation sont sémantiquement imprécis.
L'un des très mauvais points est la notion de «tag» (à partir d'août 2019). Selon l'endroit où vous regardez dans la documentation, il dit toutes les choses suivantes (plus ou moins clairement):
tag
commande, mais l'argument que vous fournissez ne s'appelle pas une balise ou un nom de balise, il s'appelle un nom d'image.tag
argument de commande, le nom de la balise est facultatif mais le nom de l'image est obligatoire. Évident.docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
x
dans (ou avant, mais qui s'accroche toujours comme par magie à) son nom d'image est alors censée vivre sur cet hôtex
(dans un registre). Si vous souhaitez accéder à une telle image, vous devez plus ou moins utiliser ce nom avec le préfixe d'hôtex
.x
, car "pousser" l'image versx
est une opération distincte.Si cela vous dérange, ce n'est pas de votre faute.
Fin de la diatribe.
la source
Si vous travaillez sur Windows 8, vous utiliserez la boîte à outils Docker. À partir du répertoire mydockerbuild, exécutez la commande ci-dessous car votre Dockerfile est un fichier texte
la source
docker build -t friendlyhello -f ./Dockerfile.txt .
Le nom du fichier doit être
Dockerfile
et non.Dockerfile
. Le fichier ne doit avoir aucune extension.la source
J'avais nommé mon fichier dockerfile au lieu de Dockerfile (en majuscule), et une fois que j'ai changé cela, il a commencé à traiter mon "Dockerfile".
la source
Supprimez simplement l'extension .txt de Dockerfile et exécutez la commande
Cela fonctionnera à coup sûr.
la source
J'ai cette erreur (dans MacBook) bien que j'aie utilisé la commande correcte pour créer l'image,
Plus tard, j'ai découvert que ce chemin était le problème. Accédez simplement au chemin correct contenant le fichier docker. Vérifiez simplement votre répertoire de travail actuel. Rien de panique!
la source
Dans Windows 10 ... la période est le premier paramètre
docker build . -t docker-whale
la source
docker build -t docker-whale .
est une commande valideC'est juste parce que le Bloc-notes ajoute ".txt" à la fin de Dockerfile
la source
Dans WSL, il semble y avoir un problème avec la conversion de chemin. L'emplacement du Dockerfile dans Ubuntu (où j'exécute docker et où réside Dockerfile) est "/ home / sxw455 / App1", mais aucune de ces commandes n'a fonctionné:
Mais sous Windows, le chemin réel est:
Et donc j'ai dû le faire (même si je l'ai couru depuis bash):
J'ai eu des problèmes similaires avec les variables d'environnement lors de l'installation initiale, et j'ai suivi quelques conseils qui disaient d'installer Windows DockerCE et de pirater les variables d'environnement plutôt que d'installer Ubuntu DockerCE, car (j'espère que je m'en suis souvenu correctement) que WSL ne met pas pleinement en œuvre systemctl. Une fois l'installation de Windows Docker CE terminée et les variables d'environnement définies, docker fonctionne correctement sous WSL / Ubuntu.
la source
J'avais créé mon DockerFile par l'outil de support Docker VS2017 et j'avais la même erreur. Au bout d'un moment, j'ai réalisé que je n'étais pas dans le bon répertoire contenant le Dockerfile
(~\source\repos\DockerWebApplication\)
. cd dans le fichier correct(~/source/repos/DockerWebApplication/DockerWebApplication)
qui se trouvait à l'intérieur du projet et a créé avec succès l'image docker.la source
La commande ci-dessous a fonctionné pour moi docker build -t docker-whale -f Dockerfile.txt.
la source
Deux façons de créer un fichier docker:
Vous pouvez décider de ne pas spécifier le nom de fichier à partir duquel construire et simplement le construire en spécifiant un chemin (en procédant de cette façon, le nom du fichier doit être
Dockerfile
sans extension ajoutée, par exemple:docker build -t docker-whale:tag path/to/Dockerfile
ou
Vous pouvez spécifier un fichier
-f
et il n'a pas d' importance ce que l' extension (dans la raison.txt
,.dockerfile
,.Dockerfile
etc ..) vous décidez d'utiliser, par exempledocker build -t docker-whale:tag /path/to/file -f docker-whale.dockerfile
.la source
J'avais initialement créé mon Dockerfile dans PowerShell et bien que je n'ai pas vu d'extension sur le fichier, il montrait en tant que type de fichier PS ... une fois que j'ai créé le fichier à partir de Notepad ++ en étant sûr de sélectionner le fichier "Tous les types ( . )" Tapez sans extension sur le nom de fichier (Dockerfile). Cela a permis à ma commande de création d'image de se terminer avec succès ... Assurez-vous simplement que votre Dockerfile a un type de "Fichier" ...
la source
Le problème est que le nom du fichier doit être Dockerfile et non DockerFile ou dockerfile, il doit être D majuscule suivi de ockerfile en minuscules.
la source
Assurez-vous que vous
DOCKERfile
êtes dans la racine du répertoire de l'application, j'avais le mien dans src, ce qui a entraîné cette erreur car Docker ne trouvait pas le chemin versDOCKERfile
la source
Pour créer Dockerfile, enregistrez le contenu automatisé dans Dockerfile. pas Dockerfile car lors de l'ouverture d'une commande de fichier:
(Un fichier texte est écrit afin que le fichier ne puisse pas être construit)
Pour créer un fichier, exécutez:
et maintenant exécutez:
Assurez-vous que vous vous trouvez dans le répertoire actuel de Dockerfile.
la source
Plus important encore, assurez-vous que votre nom de fichier est que
Dockerfile
si vous utilisez un autre nom, cela ne fonctionnera pas (du moins cela ne fonctionnait pas pour moi.)Aussi, si vous êtes dans le même répertoire où le Dockerfile est, utilisez un
.
iedocker build -t Myubuntu1:v1 .
ou utilisez le chemin absolu iedocker build -t Myubuntu1:v1 /Users/<username>/Desktop/Docker
la source
I my case (run from Windows 10)
1) Renommez le fichier
myDockerFile.Dockerfile
enDockerfile
( sans extension de fichier).Ensuite, exécutez depuis l' extérieur du dossier cette commande:
Cela fonctionne pour moi et pour mes collègues de travail, j'espère que cela fonctionnera également pour vous
la source
Assurez-vous que le nom de fichier "Dockerfile" n'est enregistré avec aucune extension. Créez simplement un fichier sans aucune extension.
Et assurez-vous que Dockerfile se trouve dans le même répertoire à partir duquel vous essayez de créer une image Docker.
la source
Dans le cas où nous avons plusieurs fichiers docker dans notre environnement, seul Dockerfile ne suffira pas à nos besoins.
Utilisez donc la commande
file
(-f argument) pour spécifier votre fichier docker (Dockerfile.ihub)la source
.
(point) à la fin de la ligne, comme le montre ci-dessus.docker build
est ici: docs.docker.com/engine/reference/commandline/buildJ'ai eu ceci sur Windows lorsque le chemin sur lequel je travaillais se trouvait dans un répertoire Junction. Donc, ma solution était de ne pas fonctionner sous cette voie.
la source
Sur Mac, cela fonctionne pour la commande ci-dessous. (espérons que vous
.Dockerfile
êtes dans votre répertoire racine).la source
Le problème est lié à la procédure de création de DockerFile.
Pour travailler, ouvrez cmd, cd dans le répertoire qui vous intéresse et tapez:
Cela créera un fichier appelé DockerFile dans votre dossier.
Tapez maintenant:
Cela ouvrira le fichier DockerFile dans le bloc-notes et vous devrez copier / coller le code standard fourni.
Enregistrez le fichier et maintenant, enfin, créez votre image avec la saisie Docker:
Cela fonctionne pour moi et j'espère que cela aidera les autres
la source
J'ai créé par erreur
Dockerfile.txt
dans mon répertoire de travail conduisant à l'erreur mentionnée ci-dessus alors quebuild
Le correctif consistait à supprimer l'
.txt
extension du fichier.Le nom du fichier doit être
Dockerfile
uniquement sans extension .la source
Exécutez
docker build -t getting-started .
dans votre répertoire de projet et assurez-vous que Dockerfile est présent et n'a pas d'.txt
extension. Si vous êtes sous Windows, vérifiez «l'extension de nom de fichier» dans l'onglet sous l'onglet Affichage de l'Explorateur de fichiers pour voir si .txt est présent ou non et supprimez-le si le premier est vrai. Bonne chance.la source
J'ai également rencontré les mêmes problèmes et cela a été résolu lorsque j'ai créé un fichier nommé avec DockerFile et mentionné toutes les commandes qui voulaient être exécutées lors de la création d'une image.
la source
L'erreur signifie qu'il
docker build
utilise soit unePATH | URL
entrée incorrecte, soit que leDockerfile
ne peut pas être trouvé dans le répertoire actuel. Assurez-vous également que lorsque vous exécutez la commande depuis un terminal intégré (par exemplebash
dans votre IDE ou votre éditeur de texte), vous disposez des autorisations d'administrateur pour le faire. Le mieux si vous pouvez vérifier lePATH
depuis votre terminal avecpwd
(dansbash shell
oudir
si vous utilisez un simplecli
sur Windows) et copier le chemin exact où vous voulez que l'image soit construite.docker build C:\windows\your_amazing_directory
docker build --help
vous montrera également les options disponibles à utiliser en cas de commandes mal formées ou illégales.la source
Je l'ai essayé et ça marche:
Veuillez voir les guillemets + les guillemets autour du nom du dossier.
Remarque: dans le dossier,
"C:\Users\ssundarababu\Documents\Docker\Learn\SimpleDockerfile"
j'ai mon Dockerfile.la source
Pour créer une image à partir de la ligne de commande dans windows / linux. 1. Créez un fichier docker dans votre répertoire actuel. par exemple: FROM ubuntu RUN apt-get update RUN apt-get -y install apache2 ADD. / var / www / html ENTRYPOINT apachectl -D FOREGROUND ENV nom Devops_Docker 2. Ne l'enregistrez pas avec l'extension .txt. 3. Sous la ligne de commande, exécutez la commande docker build. -t apache2image
la source