Criação e Gerenciamento de Ambientes com Docker e Docker-Compose

Jun 30, 2024

Aula sobre Criação e Gerenciamento de Ambientes com Docker e Docker-Compose

Introdução

  • Problema: Necessidade de montar e gerenciar ambientes PHP de forma eficiente.
  • Solução: Docker e Docker-Compose para criar e controlar múltiplos contêineres.

Desvantagens do Docker

  • Criar múltiplas imagens (Apache, PHP, MySQL) e fazê-las se comunicar é trabalhoso.
  • Precisa de um método mais eficiente para levantar ambientes.

Docker-Compose

  • Ferramenta para gerenciar múltiplas imagens e suas interações de forma simplificada.
  • Útil quando se deseja levantar vários contêineres simultaneamente.

Passos para Montar o Ambiente

  1. Criar uma Pasta para o Projeto:
    • Nome simples, sem acentos ou caracteres especiais.
  2. Criar o Arquivo Docker-Compose:
    • Nome do arquivo: docker-compose.yml.
    • Estrutura do arquivo: definição dos contêineres e suas configurações.

Exemplo de docker-compose.yml

  • Definir o primeiro contêiner (ex: PHP e Apache):
    version: '3'
    services:
      php-apache:
        image: php:7.4-apache
        ports:
          - "8080:80"
          - "443:443"
        volumes:
          - ./meu_projeto:/var/www/html
        container_name: meu_php_apache
    
  • Definir o segundo contêiner (ex: MySQL):
      mysql:
        image: mysql:latest
        ports:
          - "3306:3306"
        environment:
          MYSQL_ROOT_PASSWORD: root
        volumes:
          - mysql_data:/var/lib/mysql
        container_name: meu_db_mysql
    
  • Ligar os contêineres:
        depends_on:
          - mysql
    

Utilizando Docker-Compose

  • Levantar os contêineres: docker-compose up -d
  • Verificar contêineres ativos: docker-compose ps
  • Parar os contêineres: docker-compose stop
  • Startar os contêineres: docker-compose start
  • Remover contêineres: docker-compose down

Testes no Ambiente

Banco de Dados com DBeaver

  • Ferramenta DBeaver para gerenciar bancos de dados SQL.
  • Conectando ao MySQL:
    • Configurações: servidor (localhost), porta (3306), usuário (root), senha (root).
    • Testar a conexão e corrigir possíveis erros.

Teste do PHP

  1. Criar um arquivo teste.php com o código básico do PHP (phpinfo();)
  2. Acessar via navegador: localhost:8080/teste.php

Problemas e Soluções

  • Erros de Conexão: Usar exec do docker-compose para instalar extensões necessárias.
    • Exemplo: docker-compose exec php-apache docker-php-ext-install mysqli
  • Parar e reiniciar contêineres para aplicar mudanças: docker-compose stop e docker-compose start

Considerações Finais

  • Docker-Compose é essencial para gerenciar múltiplos contêineres.
  • Não é recomendado para apenas um contêiner, pois é uma ferramenta de orquestração.
  • Visualizando alta eficiência e organização no controle dos ambientes.

Conclusão

  • Objetivo: Facilitar a criação e gerenciamento de múltiplos ambientes de desenvolvimento.
  • Docker-Compose oferece uma maneira estruturada e eficaz para lidar com contêineres complexos.
  • Dicas para usos adicionais e comentários são incentivados.