Acabei de baixar o Docker Toolbox para Windows 10 de 64 bits hoje. Eu estou passando pelo tutorial. Estou recebendo o seguinte erro ao tentar criar uma imagem usando um Dockerfile.
Passos:
- Lançado o terminal Docker Quickstart.
- testdocker depois de criá-lo.
- Prepare o Dockerfile conforme documentado no link da web "Crie sua própria imagem"
- correu abaixo do 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.
BTW: Tentei várias opções mencionadas @ 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
fonte
fonte
docker build -t XXX --file ./Dockefile
isso pode ser porque você tem o errado nome de arquivo que está faltando a R.Respostas:
enquanto executa o seguinte comando:
verifique se o Dockerfile está presente no seu diretório de trabalho atual.
fonte
f
sinalizador, poisdocker build -f Dockerfile-dev.yaml -t my_container .
Isso pode ser útil se você tiver vários Dockerfile no seu projeto, um por ambiente, por exemplo. O mesmo se aplica à janela de encaixe-compor. Colocá-los em subdiretórios diferentes não funcionará, pois o context (.
) não corresponderá.É uma vergonha!
A mensagem de erro é enganosa. O problema não tem nada a ver com links simbólicos. Geralmente, apenas o docker não consegue encontrar o arquivo Docker descrevendo a compilação.
Razões típicas são estas:
Deve ser chamado
Dockerfile
. Se ele é chamado, por exemplo,dockerfile
,.Dockerfile
,Dockerfile.txt
, ou outro, não vai ser encontrada.Se você diz
docker build contextdir
, o Dockerfile deve estar emcontextdir/Dockerfile
. Se você o tiver, digamos./Dockerfile
, ele não será encontrado.Parece bobagem? Bem, recebi a mensagem de erro acima do meu IC do GitLab depois de escrever um bom Dockerfile, mas esqueci de fazer o check-in. Bobo? Certo. Improvável? Não.
Não é a única vergonha ...
Não apenas essa mensagem de erro é vaga e confusa. Geralmente, acho que alguns dos conceitos de janela de encaixe e grande parte da documentação são semanticamente imprecisos.
Um dos pontos realmente ruins é a noção de "tag" (a partir de agosto de 2019). Dependendo de onde você olha na documentação, está dizendo todas as seguintes coisas (mais ou menos claramente):
tag
comando, mas o argumento que você fornece não é chamado de marca ou nome de marca, é chamado de nome da imagem.tag
argumento de comando, o nome da marca é opcional, mas o nome da imagem é obrigatório. Óbvio.docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
x
em (ou antes, mas de alguma forma magicamente sempre se apega a) seu nome de imagem deve então viver nesse hostx
(em um registro). Se você deseja acessar essa imagem, precisará mais ou menos usar esse nome com o prefixo do hostx
.x
, porque "empurrar" a imagem parax
é uma operação separada.Se você está confuso com isso, a culpa não é sua.
Fim do discurso retórico.
fonte
Se você estiver trabalhando no Windows 8, estará usando a caixa de ferramentas do Docker. No diretório mydockerbuild, execute o comando abaixo, pois seu Dockerfile é um arquivo de texto
fonte
docker build -t friendlyhello -f ./Dockerfile.txt .
O nome do arquivo deve ser
Dockerfile
e não.Dockerfile
. O arquivo não deve ter nenhuma extensão.fonte
Eu nomeei meu arquivo dockerfile em vez de Dockerfile (em maiúscula), e uma vez que mudei isso, ele começou a processar meu "Dockerfile".
fonte
Apenas remova a extensão .txt do Dockerfile e execute o comando
Isso funcionará com certeza.
fonte
Eu recebi esse erro (no MacBook), embora tenha usado o comando correto para criar imagem,
Mais tarde, descobri que o caminho é o problema. Basta navegar para o caminho correto que contém o arquivo docker. Basta verificar o diretório de trabalho atual. Nada de entrar em pânico!
fonte
No windows 10 ... período é o primeiro parâmetro
docker build . -t docker-whale
fonte
docker build -t docker-whale .
é um comando válidoIsso ocorre porque o Bloco de Notas adiciona ".txt" no final do Dockerfile
fonte
Na WSL, parece haver um problema com a conversão de caminho. A localização do Dockerfile no Ubuntu (onde estou executando o docker e o Dockerfile vive) é "/ home / sxw455 / App1", mas nenhum desses comandos funcionou:
Mas no Windows, o caminho real é:
E então eu tive que fazer isso (mesmo que eu o executei do bash):
Eu tive problemas semelhantes com variáveis de ambiente durante a instalação inicial e segui alguns conselhos que diziam para instalar o Windows DockerCE e hackear as variáveis de ambiente em vez de instalar o Ubuntu DockerCE, porque (espero ter me lembrado disso corretamente) que a WSL não implementa completamente systemctl. Depois que a instalação do Windows Docker CE é concluída e as variáveis de ambiente são definidas, o docker funciona bem no WSL / Ubuntu.
fonte
Eu criei meu DockerFile pela ferramenta de suporte do Docker VS2017 e tive o mesmo erro. Depois de um tempo, percebi que não estava no diretório correto que contém o Dockerfile
(~\source\repos\DockerWebApplication\)
. cd'ed para o arquivo correto(~/source/repos/DockerWebApplication/DockerWebApplication)
que estava dentro do projeto e criou com êxito a imagem do docker.fonte
O comando abaixo funcionou para mim docker build -t docker-whale -f Dockerfile.txt.
fonte
Duas maneiras de criar um arquivo docker:
Você pode optar por não especificar o nome do arquivo a partir do qual construir e apenas especificá-lo, especificando um caminho (dessa maneira, o nome do arquivo deve estar
Dockerfile
sem nenhuma extensão anexada, por exemplo:docker build -t docker-whale:tag path/to/Dockerfile
ou
Você pode especificar um arquivo com
-f
e não importa o que extensão (dentro da razão.txt
,.dockerfile
,.Dockerfile
etc ..) que você decidir usar, por exemplodocker build -t docker-whale:tag /path/to/file -f docker-whale.dockerfile
.fonte
Originalmente, eu criei meu Dockerfile no PowerShell e, embora não tenha visto uma extensão no arquivo, ele era mostrado como um tipo de arquivo PS ... depois que criei o arquivo no Notepad ++, certifique-se de selecionar o arquivo "Todos os tipos ( . )" Digite sem extensão no Nome do arquivo (Dockerfile). Isso permitiu que meu comando de criação de imagem fosse concluído com êxito .... Apenas verifique se o Dockerfile possui um Tipo de "Arquivo" ...
fonte
O problema é que o nome do arquivo deve ser Dockerfile e não DockerFile ou dockerfile, deve ser D capital seguido por ockerfile em letras minúsculas.
fonte
Certifique-se de que você
DOCKERfile
esteja na raiz do diretório do aplicativo, eu tinha o meu no src, que resultou nesse erro porque o Docker não estava encontrando o caminho paraDOCKERfile
fonte
Para criar o Dockerfile, salve o conteúdo automatizado no Dockerfile. não Dockerfile porque ao abrir um comando de arquivo:
(Um arquivo de texto é gravado para que o arquivo não seja compilado)
Para criar o arquivo, execute:
e agora execute:
Verifique se você está no diretório atual do Dockerfile.
fonte
Mais importante, verifique se o nome do seu arquivo é,
Dockerfile
se você usar outro nome, ele não funcionará (pelo menos não funcionou para mim).Além disso, se você estiver no mesmo diretório em que o Dockerfile estiver usando a
.
iedocker build -t Myubuntu1:v1 .
ou o caminho absoluto iedocker build -t Myubuntu1:v1 /Users/<username>/Desktop/Docker
fonte
No meu caso (executado no Windows 10)
1) Renomeie o arquivo
myDockerFile.Dockerfile
paraDockerfile
( sem extensão).Em seguida, execute a partir de fora da pasta este comando:
Isso está funcionando para mim e para meus colegas de trabalho, espero que também funcione para você
fonte
Verifique se o nome do arquivo "Dockerfile" não está salvo com nenhuma extensão. Basta criar um arquivo sem qualquer extensão.
E verifique se o Dockerfile está no mesmo diretório de onde você está tentando criar uma imagem do Docker.
fonte
Caso tenhamos vários arquivos docker em nosso ambiente, apenas o Dockerfile não será suficiente.
Portanto, use o
file
comando (-f argument) para especificar seu arquivo docker (Dockerfile.ihub)fonte
.
(ponto) no final da linha, como mostrado acima.docker build
está aqui: docs.docker.com/engine/reference/commandline/buildEu peguei isso no Windows quando o caminho em que eu estava trabalhando estava em um diretório Junction. Então, minha solução foi não funcionar nesse caminho.
fonte
No Mac, ele funciona para o comando abaixo. (espero que você
.Dockerfile
esteja no seu diretório raiz).fonte
O problema está relacionado ao procedimento de criação do DockerFile.
Para funcionar, abra cmd, cd no diretório de interesse e digite:
Isso criará um arquivo chamado DockerFile dentro da sua pasta.
Agora digite:
Isso abrirá o arquivo DockerFile no bloco de notas e você precisará copiar / colar o código padrão fornecido.
Salve o arquivo e agora, finalmente, crie sua imagem com o Docker digitando:
Isso está funcionando para mim e espero que ajude outras pessoas
fonte
Eu criei erroneamente
Dockerfile.txt
no meu diretório de trabalho levando ao erro acima mencionado enquantobuild
A correção foi remover a
.txt
extensão do arquivo.O nome do arquivo deve estar
Dockerfile
apenas sem nenhuma extensão .fonte
Execute
docker build -t getting-started .
no diretório do projeto e verifique se o Dockerfile está presente e sem.txt
extensão. Se você estiver no Windows, verifique a 'extensão do nome do arquivo' na guia Exibir no Explorador de Arquivos para mostrar se .txt existe ou não e remova-o se o primeiro for verdadeiro. Boa sorte.fonte
Eu também enfrentei os mesmos problemas e foi resolvido quando criei o arquivo chamado DockerFile e mencionei todo o comando que queria ser executado durante a criação de qualquer imagem.
fonte
O erro significa que
docker build
está usando umaPATH | URL
entrada incorreta ou queDockerfile
não pode ser encontrada no diretório atual. Além disso, verifique se, ao executar o comando a partir de um terminal integrado (por exemplo,bash
dentro do seu IDE ou editor de texto), você tem as permissões de administrador para fazê-lo. Melhor se você puder verificar aPATH
partir do seu terminal compwd
(nobash shell
oudir
se estiver usando um simplescli
no Windows) e copiar o caminho exato onde deseja que a imagem seja criada.docker build C:\windows\your_amazing_directory
docker build --help
também mostrará as opções disponíveis para uso em caso de comandos malformados ou ilegais.fonte
Eu tentei isso e funcionou:
Por favor, veja aspas + aspas em torno do nome da pasta
Nota: Na pasta
"C:\Users\ssundarababu\Documents\Docker\Learn\SimpleDockerfile"
eu tenho meu Dockerfile.fonte
Para criar uma imagem da linha de comando no Windows / Linux. 1. Crie um arquivo de janela de encaixe no seu diretório atual. por exemplo: DO ubuntu, execute o apt-get update, execute o apt-get -y install apache2 ADD. / var / www / html ENTRYPOINT apachectl -D FOREGROUND ENV nome Devops_Docker 2. Não salve com a extensão .txt. 3. Na linha de comandos, execute a construção da janela de encaixe. -t apache2image
fonte