É possível criar imagem do Dockerfile e executá-lo com um único comando?
Há um comando docker build
para criar um Dockerfile e docker run -it
executar a imagem.
Existe alguma combinação desses dois comandos para facilitar a criação e a execução com apenas um comando?
docker
dockerfile
Cintilação
fonte
fonte
Respostas:
Não, não há um comando único. Mas se você marcar sua imagem conforme a compila, será mais fácil executar:
fonte
docker rmi foo
.Se você deseja evitar a marcação,
docker build -q
não gera nada além do hash da imagem final , que você pode usar como argumento paradocker run
:E adicionar
--rm
adocker run
se desejar que o recipiente removido automaticamente quando ele sai.fonte
docker build
: /-q
opção. Para silenciá-lo, produza apenas a tag gerada automaticamente. E é isso. Sinta-se livre para transformar esse estilo como quiser.docker build . | tee /dev/tty | tail -n1 | cut -d' ' -f3 | xargs -I{} docker run --rm {}
Se você usa o Makefile, acho este trecho útil:
Você não precisa de marcação, como na resposta @ jonathon-reinhart, mas também obtém o resultado da compilação.
fonte
Eu uso o docker-composite para essa conveniência, pois a maioria dos aplicativos que estou construindo está conversando com serviços externos mais cedo ou mais tarde; portanto, se eu vou usá-lo de qualquer maneira, por que não usá-lo desde o início. Basta ter o docker-compose.yml como:
e, em seguida, basta executar o aplicativo com:
Ele reconstruirá a imagem ou reutilizará o contêiner, dependendo se foram feitas alterações na definição da imagem.
fonte
PC com Windows
Faça um
run.bat
arquivo. Em seguida, no arquivo, adicione este:Para executar o arquivo usando o powershell ou o cmd, faça o seguinte:
fonte
docker-build-and-run
Eu criei um pequeno comando auxiliar para criar e executar, em um único comando. No Linux ou Mac, você pode adicioná-lo ao seu
~/.bash_profile
para disponibilizá-lo no Terminal.Uso:
Exemplos:
O Script:
Adicione isso a um
.sh
arquivo ou adicione-o ao seu~/.bash_profile
:fonte
Você também pode fazer
docker build
e canalizar o nome da imagem para a qual ela geradocker run
:docker build
fornecerá texto com várias linhas... Successfully built 18e77bc0d83a
tail -n1
' '
e obter3
palavra comcut -d' ' -f3
run
comxargs -I{} docker run {}
fonte
| tee /dev/tty
depoisdocker build .
para obter a saída completa!Para quem procura uma solução reutilizável, você pode instalar este plugin do docker que eu criei: https://github.com/stasmihailov/docker-script
Em seguida, você pode criar e executar um Dockerfile da seguinte maneira:
fonte