Docker

Por dentro dos detalhes de uma receita Docker

Docker 9 de Fev de 2024

Texto de Paulo Clemente
Desenvolvedor e redator de mídias sociais na Rocketseat

O Docker tornou-se uma ferramenta indispensável para desenvolvedores de software, simplificando a gestão de ambientes e dependências. Uma das melhores maneiras de aproveitar ao máximo o Docker é através do uso do arquivo docker-compose.yml, que atua como uma receita para definir e configurar todos os serviços necessários para uma aplicação. Neste artigo, vamos explorar como criar uma receita Docker e entender os detalhes por trás dela.

Oferta especial NLW | Rocketseat
Do zero ao avançado, tenha acesso imediato a todas as formações da Rocketseat em uma única plataforma para você aprender na prática as tecnologias mais demandadas do mercado.

Antes,

Verifique se você tem o Docker instalado rodando o seguinte comando: docker ps, se estiver tudo ok . Deve aparecer assim:

Se ainda não instalou o Docker, você pode seguir com a instalação através da documentação oficial:

MacOS

Windows

Linux

O Papel do Docker Compose

O Docker Compose é uma ferramenta que permite definir e executar aplicativos Docker multi-container de maneira simples e declarativa. Ele usa um arquivo YAML chamado docker-compose.yml para configurar os serviços necessários, como bancos de dados, cache, filas de mensagens, entre outros.

Beleza, vamos nessa

No seu editor de código, você deve criar um arquivo chamado docker-compose.yml. Esse arquivo age como uma receita, especificando todos os serviços necessários para sua aplicação, seja Postgres, Redis ou qualquer outro serviço.

Estrutura do Arquivo docker-compose.yml

Vamos dar uma olhada na estrutura básica do arquivo docker-compose.yml usando um exemplo:

version: '3.7'

services:
  postgres:
    image: bitname/postgresql:latest
    ports:
      - '5432:5432'
    environment:
      - POSTGRES_USER=docker
      - POSTGRES_PASSWORD=docker
      - POSTGRES_DB=polls
    volumes:
      - polls_pg_data:/bitnami/postgresql

  redis:
    image: bitnami/redis:latest
    environment:
      - 'ALLOW_EMPTY_PASSWORD=yes'
    ports:
      - '6379:6379'
    volumes:
      - 'polls_redis_data:/bitnami/redis/data'

volumes:
  polls_pg_data:
  polls_redis_data:

  • Version: Especifica a versão do Docker Compose sendo utilizada.
  • Services: Lista os diferentes serviços necessários para a aplicação.
  • Image: Define a imagem do Docker para cada serviço.
  • Ports: Mapeia as portas do contêiner para o host.
  • Environment: Configura variáveis de ambiente necessárias para cada serviço.
  • Volumes: Define volumes para persistir dados entre reinicializações de contêineres.

Entendendo os Componentes de uma receita Docker

  • Services: Aqui você define os serviços necessários para sua aplicação, como bancos de dados, servidores web, cache, etc.
  • Image: Especifica a imagem Docker a ser usada para cada serviço. Isso inclui o repositório e a tag da imagem.
  • Ports: Mapeia as portas do contêiner para o host, permitindo acessos externos aos serviços.
  • Environment: Configura variáveis de ambiente necessárias para cada serviço, como credenciais de banco de dados ou configurações específicas.
  • Volumes: Define volumes para persistir dados entre as reinicializações de contêineres. Isso garante que os dados não sejam perdidos quando os contêineres são destruídos e recriados.

Executando a Receita Docker

Após configurar o arquivo docker-compose.yml, você pode iniciar todos os serviços com o comando docker-compose up. Isso criará e iniciará os contêineres de acordo com as configurações fornecidas no arquivo.

O Docker Compose e o arquivo docker-compose.yml simplificam significativamente a configuração e gestão de ambientes de desenvolvimento. Com uma única receita, você pode definir todos os serviços necessários para sua aplicação e garantir que eles sejam executados de maneira consistente em qualquer ambiente.

Essa abordagem não apenas economiza tempo, mas também reduz erros e aumenta a produtividade dos desenvolvedores. Portanto, dominar o uso do Docker e do Docker Compose é essencial para qualquer desenvolvedor de software moderno.

Marcadores