Primeira Imagem com Dockerfile

Será revisada a criação de um container com Ubuntu.

Execução de container Ubuntu:

$ docker container run -it ubuntu /bin/bash
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
31e907dcc94a: Pull complete
Digest: sha256:8a37d68f4f73ebf3d4efafbcf66379bf3728902a8038616808f04e34a9ab63ee
Status: Downloaded newer image for ubuntu:latest
root@c9a8918623e1:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

Mas não tínhamos o comando curl instalado, pois as imagens de container possuem somente o que é necessário para que o container funcione, com o objetivo de ter a distribuição instalada:

root@c9a8918623e1:/# curl
bash: curl: command not found

Foi necessário atualizar os repositórios e instalar o comando curl:

root@c9a8918623e1:/# apt update
root@c9a8918623e1:/# apt install curl -y
root@c9a8918623e1:/# curl
curl: try 'curl --help' or 'curl --manual' for more information

Porém se sair do container e executar um novo container o comando curl novamente não existirá:

root@c9a8918623e1:/# exit
exit
$ docker container run -it ubuntu /bin/bash
root@bbca1411e36e:/# curl
bash: curl: command not found

O esperado é que quando o container Ubuntu for criado o comando curl esteja instalado. Para isso será utilizado o Dockerfile:

Todo container tem como base uma imagem, e uma imagem ter por base outra imagem.

Dockerfile:

Será utilizado o docker build para construção da imagem:

docker image build
  • -t: define o nome da imagem

  • -f: define a imagem Dockerfile a ser utilizada

  • .: define o contexto (diretório utilizado pelo Docker Daemon para construção da imagem)

Se a imagem Dockerfile não for explicitada com -f Dockerfile será realizada a tentativa de buscar o arquivo no diretório atual

Verificação das imagens e containers existentes antes de construir a imagem:

Imagem construída:

Execução do container com a imagem construída com o comando curl instalado:

Last updated