Ir para o conteúdo

Criando imagem sem Dockerfile

Também é possível criar uma imagem sem Dockerfile, "congelando" o estado de um container com docker container commit. É útil para experimentos rápidos, mas não é reproduzível — para qualquer coisa séria, prefira um Dockerfile.

Entre em um container interativo:

docker container run --interactive --tty --name my-ubuntu ubuntu /bin/bash

Dentro do container, faça as alterações que quiser — instalar pacotes, criar arquivos, etc.:

apt-get update && apt-get install -y curl

Saia do container (exit). Ele fica parado, mas preservado. Agora gere uma imagem a partir dele:

docker container commit \
  --message "add curl" \
  --author "Rafael Dutra <[email protected]>" \
  my-ubuntu workshop/ubuntu-curl:0.1

Confira que a imagem existe e rode um container a partir dela:

docker image ls workshop/ubuntu-curl
docker container run --rm workshop/ubuntu-curl:0.1 curl --version

Repare no problema: quem olhar essa imagem não tem como saber o que foi feito nem refazer o processo. Com um Dockerfile, o histórico fica versionado e qualquer pessoa reconstrói a mesma imagem com docker build.