Dockerfile: principais comandos e instruções
Igor Souto
Posted on June 24, 2020
O Dockerfile é o meio que utilizamos para construir uma imagem.
Ele funciona como uma receita, em que vamos passando uma imagem base, comandos e todo o passo a passo.
Ao construir este Dockerfile, criamos nossa imagem, e a partir desta imagem, criamos nosso container.
Comandos mais úteis no Dockerfile
FROM
FROM debian
Deve ser o primeiro comando de um Dockerfile, com ele configuramos qual a imagem que queremos utilizar como base na nossa imagem.
ADD
ADD opa.txt /diretorio/
Para mover um arquivo para dentro de um diretório do container, podendo ser arquivos .tar
.
CMD
CMD ["sh, "-c", "echo", "$HOME"]
Define um comando para ser executado quando um container com esta imagem inicializar.
Pode haver apenas uma instrução CMD em um Dockerfile. Se você adicionar mais de um, apenas o último entrará em vigor.
Ele pode ser sobrescrito se passarmos outro comando na linha de comando, como:
docker run -d minha-imagem /bin/bash
LABEL
LABEL Description="Bla bla bla giropops"
Para adicionar uma descrição ao container e ficar mais fácil de gerenciar os containers.
COPY
COPY opa.txt /diretorio/
Semelhante ao ADD, porém vc pode copiar arquivos normais e diretórios.
ENTRYPOINT
ENTRYPOINT ["npm", "run", "dev"]
É bem parecido com o CMD
, mas este não pode ser sobrescrito, ele sempre será executado e o container irá rodar como um executável.
Quando este comando "morrer", o container morrerá também.
ENV
ENV API_KEY="Igor Souto"
Para configurar variáveis de ambiente para o container.
EXPOSE
EXPOSE 80
Configura portas que o container irá expor, e então o container será acessível por essas portas.
RUN
RUN apt-get update && apt-get install apache2 && apt-get clean
Usado para executar comandos no contêiner, geralmente usado para instalar pacotes.
Cada RUN cria uma nova camada em nosso contêiner, portanto, precisamos evitar criar RUN
s demais, criar menos camadas e não deixar tudo muito confuso, afinal, só temos acesso read-write na última camada, dependendo sobre o que queremos fazer, não podemos (por exemplo, apt-get clean rodando em outro RUN).
Para entender melhor como funcionam as camadas da imagem, acesse aqui o post sobre Docker.
USER
USER igor
Para definirmos qual será o usuário dentro do container, por padrão ele é o usuário ROOT.
WORKDIR
WORKDIR /catota
Para definirmos qual o diretório de trabalho. Assim que o container for executado, este diretório será o que iremos cair dentro ao acessar o container.
VOLUME
VOLUME /diretorio
Passamos o caminho em que o Docker irá criar um volume, ou seja, um diretório que terá uma cópia em nossa máquina local e que se alterarmos algo neste diretório, será alterado dentro do container também e vice-versa.
MAINTAINER
MAINTAINER Igor igor@email.com
Passamos quem é o dono do container.
Build container
docker build -t primeira_imagem:1.0 .
Agora para buildar a imagem, usamos o comando build
do Docker. passamos o parametro -t
para nomear esta imagem, dois pontos e uma versão. E utilizamos o " . ", para dizer que nosso Dockerfile se encontra neste mesmo nível de diretório. Não apontamos o Dockerfile, e sim o diretório que ele se encontra.
Posted on June 24, 2020
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.