DEV Community

Diogo Jacomini
Diogo Jacomini

Posted on

Fundamentos Docker

O que é Docker

Docker é uma plataforma de software que permite criar, executar e transferir aplicações em ambientes virtualizados. Ele utiliza contêineres para empacotar e distribuir software, facilitando a implantação e garantindo que os aplicativos possam rodar em qualquer lugar.

Com Docker, os desenvolvedores podem empacotar seus aplicativos junto com todas as dependências necessárias. Esses contêineres podem ser movidos entre diferentes ambientes e executados em qualquer máquina compatível, sem necessidade de alterações no código. Isso simplifica o desenvolvimento, os testes e a implantação de aplicativos, assegurando que eles funcionem de forma consistente em diversos ambientes.

Principais comandos Docker

cmd descrição
docker ps vizualizar os containers
docker ps -a vizualizar todos os containers
docker images visualizar as imagens

Abaixo estão alguns dos comandos mais usados no Docker:

  • docker run [imagem]: Cria e executa um contêiner com base em uma imagem especificada.
  • docker ps: Lista os contêineres em execução.
  • docker ps -a: Lista todos os contêineres, incluindo os que estão parados.
  • docker images: Lista todas as imagens disponíveis localmente.
  • docker pull [imagem]: Faz o download de uma imagem do Docker Hub.
  • docker push [imagem]: Envia uma imagem para um repositório, como o Docker Hub.
  • docker build -t [nome:tag] [path]: Cria uma nova imagem Docker a partir de um Dockerfile.
  • docker stop [contêiner_id]: Interrompe um contêiner em execução.
  • docker rm [contêiner_id]: Remove um contêiner.
  • docker rmi [imagem_id]: Remove uma imagem.
  • docker exec -it [contêiner_id] [comando]: Executa um comando dentro de um contêiner em execução.
  • docker logs [contêiner_id]: Exibe os logs de um contêiner.

O que é Imagens?

Imagens no Docker são pacotes de software que contêm tudo o que é necessário para executar uma aplicação. Isso inclui o código fonte, bibliotecas e dependências, além de outras ferramentas essenciais para o funcionamento correto da aplicação.

Por exemplo, uma imagem pode conter uma aplicação web desenvolvida em Python com o framework Flask, incluindo a versão específica do Python, as bibliotecas necessárias como o Flask e suas dependências, além de configurações como variáveis de ambiente.

Além disso, imagens podem ser armazenadas e compartilhadas em repositórios como o Docker Hub ou repositórios privados. Isso facilita a colaboração entre equipes e garante que todos estejam usando a mesma versão do software durante o desenvolvimento e a produção.

O que é containers?

As imagens são usadas para criar contêineres, que são instâncias em execução de uma imagem. Um contêiner representa um ambiente isolado que executa a aplicação com tudo o que ela precisa, sem interferir no sistema operacional subjacente ou em outros contêineres no mesmo host.

Por exemplo, ao iniciar um contêiner baseado em uma imagem que contém um servidor web Apache, o contêiner pode executar o servidor de forma independente, mesmo que o sistema anfitrião não tenha o Apache instalado. Cada contêiner possui seu próprio sistema de arquivos, bibliotecas e configurações, garantindo isolamento total.

Contêineres são leves, iniciam rapidamente e consomem menos recursos do que máquinas virtuais, pois compartilham o kernel do sistema operacional anfitrião. Essa eficiência torna os contêineres ideais para aplicativos em nuvem, microsserviços e ambientes de desenvolvimento consistentes.

Dockerfile

Um Dockerfile é um arquivo de texto usado para automatizar a criação de imagens Docker. Ele contém uma sequência de instruções que informam ao Docker como construir a imagem desejada. Cada instrução no Dockerfile realiza uma ação específica, como definir a imagem base, copiar arquivos ou instalar dependências.

Instrução Descrição Exemplo de uso
FROM Especifica a imagem base a ser usada para criar a nova imagem. FROM python:3.8
WORKDIR Define o diretório de trabalho para comandos subsequentes. WORKDIR /app
COPY Copia arquivos ou diretórios do host para o contêiner. A sintaxe geral é COPY <origem> <destino> COPY app.py /app/
ADD Copia arquivos ou URLs para o contêiner. ADD <https://example.com/file.txt> /app/
RUN Executa um comando durante a criação de uma imagem. RUN apt-get update && apt-get install -y curl
ENV Define variáveis de ambiente dentro do contêiner. Informações como senhas, chaves de API e outras configurações ENV APP_PORT=8080
EXPOSE Informa ao Docker que o contêiner escuta na porta especificada em tempo de execução. EXPOSE 8080
USER Define o usuário que executará o contêiner. Por padrão, executa o contêiner com o usuário root . USER appuser
CMD Define o comando padrão a ser executado quando um contêiner é iniciado a partir da imagem. CMD ["python", "app.py"]
ENTRYPOINT Define o comando a ser executado quando o contêiner é iniciado. ENTRYPOINT ["python", "app.py"]

Top comments (0)