Pular para o conteúdo principal

05 - Dockerfile


Entendendo o Dockerfile

# hello word ubuntu base image

# Imagem base para criação
FROM ubuntu:18.04

#informa que é o responsavel pela imagem (opcional)
MAINTAINER uniliva@gmail.com

# Serve parar executar comando de instalação na imagem.
# (cada run cria uma nova camada (sobe o container, executa o comando,
# para o container, commita as mudancas e sobre o container de novo e
# refaz o procssso para cada RUN ))
RUN apt-get update

# serve pra executar um comando dentro da imagem
CMD ["echo", "HELLO WORLD"]

Ver historico

docker history <continer-id>
perigo

Tome cuidado com o diretorio onde vc cria o Dockerfile pois ele colocará tudo que esta no nivel do Dockerfile dentro da nova imagem que vc vai criar



Criando imagem a partir de Dockerfile

docker build -t <nome-imagem>:<versao> <path-Dockfile>

# ex:
docker build -t uni-helo-world:0.1 /home/udemy


Criando contianer a partir da imagem

# executa direto (CRTL+P+Q pra sair sem encerrar a imagem)
# ou passe o -d para iniciar (detachado) e liberar o console
docker run <nome-imagem>:<versao>

# ex:
docker run uniteste:0.1


Aprofundando no Dockerfile

Cache de build

Quando criamos uma imagem que baixa varios pacotes a primeira vez a partir de um Dockerfile, ela demora bastante, porém ao criar uma nova imagem a partir do mesmo Dockerfile, ela e criada extremamente rapido, pois o docker reaproveita a dados do cache, pois a imagem e construida em camadas, assim ele verifica se cada pacote ja não foi instalado antes e ser foi ele reaproveita aquela camanda em vez de baixar de novo.


Testando nossa imagem antes de criar um dockerfile

É mais pratico antes de sair ceiando um docker file, criar se uma imagem a partir de uma base qualquer e fazer o que se quer nela, para facilitar a montagem do dockerfile.

Assim se precisar criar um imagem que fique pingando um determinado ip, envés de ir direto para o dockerfile, crie uma imagem normal e faça isso. depois que viu como e veito crie o dockerfile com as informações que usou.