loading...
Cover image for Dockerfile: principais comandos e instruções

Dockerfile: principais comandos e instruções

soutoigor profile image Igor Souto ・3 min read

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 RUNs 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 -tpara 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.

Discussion

pic
Editor guide