Acabo de descargar Docker Toolbox para Windows 10 de 64 bits hoy. Estoy pasando por el tutorial. Recibo el siguiente error cuando intento construir una imagen usando un Dockerfile.
Pasos:
- Lanzamiento de la terminal de inicio rápido de Docker.
- Testdocker después de crearlo.
- Prepare Dockerfile como se documenta en el enlace web "Cree su propia imagen"
- corrió debajo del comando
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.
Por cierto: probé varias opciones mencionadas en 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
fuente
fuente
docker build -t XXX --file ./Dockefile
puede ser porque te equivocaste en el nombre del archivo, le falta la R.Respuestas:
mientras ejecuta el siguiente comando:
compruebe que Dockerfile esté presente en su directorio de trabajo actual.
fuente
f
indicador, como endocker build -f Dockerfile-dev.yaml -t my_container .
Esto puede resultar útil si tiene varios Dockerfile en su proyecto, uno por entorno, por ejemplo. Lo mismo se aplica a docker-compose. Ponerlos en diferentes subdirectorios no funcionará, ya que el contexto (.
) no coincidirá.¡Es una pena!
El mensaje de error es engañoso. El problema no tiene nada que ver con los enlaces simbólicos realmente. Por lo general, es solo que Docker no puede encontrar el Dockerfile que describe la compilación.
Las razones típicas son estas:
Debe ser llamado
Dockerfile
. Si se le llama, por ejemplo,dockerfile
,.Dockerfile
,Dockerfile.txt
, o de otro tipo, no va a ser encontrado.Si dices
docker build contextdir
, el Dockerfile debe estar encontextdir/Dockerfile
. Si lo tiene adentro, por ejemplo,./Dockerfile
no se encontrará.¿Suena tonto? Bueno, recibí el mensaje de error anterior de mi GitLab CI después de haber escrito un buen Dockerfile, pero olvidé revisarlo. ¿Tonto? Por supuesto. ¿Improbable? No.
No es la única vergüenza ...
No solo este mensaje de error es vago y confuso. Generalmente encuentro que algunos de los conceptos de Docker y gran parte de la documentación son semánticamente imprecisos.
Uno de los puntos realmente malos es la noción de "etiqueta" (a partir de agosto de 2019). Dependiendo de dónde mire en la documentación, está diciendo todas las siguientes cosas (más o menos claramente):
tag
comando, pero el argumento que proporciona no se llama etiqueta o nombre de etiqueta, se llama nombre de imagen.tag
argumento del comando, el nombre de la etiqueta es opcional pero el nombre de la imagen es obligatorio. Obvio.docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
x
en (o antes, pero de alguna manera mágicamente siempre aferrándose a) su nombre de imagen se supone que vive en ese hostx
(en un registro). Si desea acceder a dicha imagen, más o menos tiene que usar este nombre con el prefijo del hostx
.x
, porque "empujar" la imagenx
es una operación separada.Si usted está confundido por esto, es que no tienes la culpa.
Fin de la diatriba.
fuente
Si está trabajando en Windows 8, estaría usando Docker toolbox. Desde el directorio mydockerbuild, ejecute el siguiente comando, ya que su Dockerfile es un archivo de texto
fuente
docker build -t friendlyhello -f ./Dockerfile.txt .
El nombre del archivo debe ser
Dockerfile
y no.Dockerfile
. El archivo no debe tener ninguna extensión.fuente
Había nombrado mi archivo dockerfile en lugar de Dockerfile (en mayúscula), y una vez que lo cambié, comenzó a procesar mi "Dockerfile".
fuente
Simplemente elimine la extensión .txt de Dockerfile y ejecute el comando
Funcionará seguro.
fuente
Tengo este error (en MacBook) aunque utilicé el comando correcto para crear la imagen,
Más tarde encontré que el camino es el problema. Simplemente navegue a la ruta correcta que contiene el archivo acoplable. Simplemente revise su directorio de trabajo actual. ¡Nada de pánico!
fuente
En Windows 10 ... el período es el primer parámetro
docker build . -t docker-whale
fuente
docker build -t docker-whale .
es un comando válidoEso es solo porque el Bloc de notas agrega ".txt" al final de Dockerfile
fuente
En WSL, parece haber un problema con la conversión de ruta. La ubicación del Dockerfile en Ubuntu (donde estoy ejecutando docker y donde vive Dockerfile) es "/ home / sxw455 / App1", pero ninguno de estos comandos funcionó:
Pero en Windows, la ruta real es:
Y entonces tuve que hacer esto (aunque lo ejecuté desde bash):
Tuve problemas similares con las variables de entorno durante la instalación inicial, y seguí algunos consejos que decían instalar Windows DockerCE y piratear las variables de entorno en lugar de instalar Ubuntu DockerCE, porque (espero recordar esto correctamente) que WSL no se implementa completamente systemctl. Una vez que se realiza la instalación de Windows Docker CE y se establecen las variables de entorno, Docker funciona bien en WSL / Ubuntu.
fuente
Había creado mi DockerFile por la herramienta VS2017 Docker Support y tuve el mismo error. Después de un tiempo, me di cuenta de que no estaba en el directorio correcto que contiene el Dockerfile
(~\source\repos\DockerWebApplication\)
. Cd'ed al archivo correcto(~/source/repos/DockerWebApplication/DockerWebApplication)
que estaba dentro del proyecto y creó con éxito la imagen del acoplador.fuente
El siguiente comando funcionó para mí docker build -t docker-whale -f Dockerfile.txt.
fuente
Dos formas de construir un dockerfile:
Puede decidir no especificar el nombre del archivo desde el cual construir y simplemente compilarlo especificando una ruta (de esta manera, el nombre del archivo debe estar
Dockerfile
sin extensión añadida, por ejemplo:docker build -t docker-whale:tag path/to/Dockerfile
o
Se puede especificar un archivo con
-f
y no importa lo que la extensión (dentro de lo razonable.txt
,.dockerfile
,.Dockerfile
etc ..) que decida usar, por ejemplodocker build -t docker-whale:tag /path/to/file -f docker-whale.dockerfile
.fuente
Originalmente había creado mi Dockerfile en PowerShell y, aunque no vi una extensión en el archivo, se mostró como un Tipo de archivo PS ... una vez que creé el archivo desde Notepad ++, asegúrese de seleccionar el archivo "Todos los tipos ( . )" Escriba sin extensión en el Nombre de archivo (Dockerfile). Eso permitió que mi comando de creación de imágenes se completara correctamente ... Solo asegúrese de que su Dockerfile tenga un Tipo de "Archivo" ...
fuente
El problema es que el nombre del archivo debe ser Dockerfile y no DockerFile o dockerfile, debe ser D mayúscula seguido de ockerfile en minúsculas.
fuente
Asegúrese de que
DOCKERfile
esté en la RAÍZ del directorio de la aplicación, tuve la mía en src que resultó en este error porque Docker no estaba encontrando la ruta aDOCKERfile
fuente
Para construir Dockerfile, guarde contenido automatizado en Dockerfile. no Dockerfile porque al abrir un comando de archivo:
(Se escribe un archivo de texto para que el archivo no se pueda construir)
Para construir el archivo ejecute:
y ahora corre:
Asegúrese de estar en el directorio actual de Dockerfile.
fuente
Lo más importante es asegurarse de que su nombre de archivo sea
Dockerfile
si usa otro nombre que no funcionará (al menos no lo hizo para mí).Además, si está en el mismo directorio donde el Dockerfile es use un
.
iedocker build -t Myubuntu1:v1 .
o use la ruta absoluta iedocker build -t Myubuntu1:v1 /Users/<username>/Desktop/Docker
fuente
I my case (ejecutado desde Windows 10)
1) Cambie el nombre del archivo
myDockerFile.Dockerfile
aDockerfile
( sin extensión de archivo).Luego ejecute desde fuera de la carpeta este comando:
Esto está funcionando para mí y para mis colegas en el trabajo, espero que también funcione para usted.
fuente
Asegúrese de que el nombre de archivo "Dockerfile" no esté guardado con ninguna extensión. Simplemente cree un archivo sin ninguna extensión.
Y asegúrese de que Dockerfile esté en el mismo directorio desde el que está tratando de construir la imagen de Docker.
fuente
En caso de que tengamos varios archivos acoplables en nuestro entorno, solo Dockerfile no será suficiente.
Por lo tanto, use el
file
comando (argumento -f) para especificar su archivo acoplable (Dockerfile.ihub)fuente
.
(punto) al final de la línea, como se muestra arriba.docker build
está aquí: docs.docker.com/engine/reference/commandline/buildObtuve esto en Windows cuando la ruta en la que estaba trabajando estaba bajo un directorio de Junction. Entonces mi solución fue no trabajar bajo ese camino.
fuente
En Mac funciona para el siguiente comando. (Espero que
.Dockerfile
esté en su directorio raíz).fuente
El problema está relacionado con el procedimiento de creación de DockerFile.
Para trabajar, abra cmd, cd en el directorio de interés y escriba:
Esto creará un archivo llamado DockerFile dentro de su carpeta.
Ahora escriba:
Esto abrirá el archivo DockerFile en el bloc de notas y tendrá que copiar / pegar el código estándar proporcionado.
Guarde el archivo y ahora, finalmente, cree su imagen con Docker escribiendo:
Esto está funcionando para mí y espero que ayude a otros
fuente
Creé erróneamente
Dockerfile.txt
en mi directorio de trabajo que condujo al error mencionado anteriormente mientrasbuild
La solución fue eliminar la
.txt
extensión del archivo.El nombre del archivo debe estar
Dockerfile
solo sin ninguna extensión .fuente
Ejecute
docker build -t getting-started .
en el directorio de su proyecto y asegúrese de que Dockerfile esté presente y no tenga.txt
extensión. Si está en Windows, verifique la 'extensión de nombre de archivo' en la pestaña debajo de la vista en el Explorador de archivos para mostrar si .txt está allí o no, y elimínelo si el primero es verdadero. Buena suerte.fuente
También enfrenté los mismos problemas y se resolvió cuando creé un archivo con DockerFile y mencioné todos los comandos que deseaban ejecutarse durante la creación de cualquier imagen.
fuente
El error significa que
docker build
está utilizando unaPATH | URL
entrada incorrecta o queDockerfile
no se puede encontrar en el directorio actual. Además, asegúrese de que cuando ejecute el comando desde un terminal integrado (por ejemplo,bash
dentro de su IDE o editor de texto) tenga los permisos de administrador para hacerlo. Es mejor si puede verificarPATH
desde su terminal conpwd
(enbash shell
odir
si está usando un simplecli
en Windows) y copiar la ruta exacta donde desea que se construya la imagen.docker build C:\windows\your_amazing_directory
docker build --help
también le mostrará las opciones disponibles para usar en caso de comandos malformados o ilegales.fuente
Intenté esto y funcionó:
Consulte las comillas y las comillas alrededor del nombre de la carpeta.
Nota: En la carpeta
"C:\Users\ssundarababu\Documents\Docker\Learn\SimpleDockerfile"
tengo mi Dockerfile.fuente
Para construir una imagen desde la línea de comandos en windows / linux. 1. Cree un archivo acoplable en su directorio actual. por ejemplo: DESDE ubuntu EJECUTAR apt-get update EJECUTAR apt-get -y instalar apache2 ADD. / var / www / html ENTRYPOINT apachectl -D FOREGROUND ENV name Devops_Docker 2. No lo guarde con la extensión .txt. 3. En la línea de comandos, ejecute el comando docker build. -t apache2image
fuente