Criando um Projeto Docker Compose Simples
Agora que o Docker Compose está devidamente instalado e funcionando, vamos criar um projeto simples para testar nossa configuração. Criaremos uma aplicação web básica com um servidor web e um banco de dados Redis.
Criar um Diretório de Projeto
Primeiro, vamos criar um diretório dedicado para nosso projeto:
mkdir ~/project/docker-compose-test
cd ~/project/docker-compose-test
Criar um Arquivo Docker Compose
Agora, vamos criar um arquivo docker-compose.yml usando o editor de texto nano:
nano docker-compose.yml
Copie e cole o seguinte conteúdo no arquivo:
version: "3"
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
redis:
image: redis:alpine
Este arquivo Docker Compose define dois serviços:
web: Um servidor web Nginx que servirá conteúdo de um diretório local
redis: Um banco de dados Redis para cache ou armazenamento de dados de sessão
Pressione Ctrl+O seguido por Enter para salvar o arquivo, depois pressione Ctrl+X para sair do nano.
Criar Conteúdo HTML
Vamos criar uma página HTML simples que nosso serviço web servirá:
mkdir -p html
nano html/index.html
Copie e cole o seguinte conteúdo no arquivo:
<!DOCTYPE html>
<html>
<head>
<title>Docker Compose Test</title>
</head>
<body>
<h1>Hello from Docker Compose!</h1>
<p>If you can see this, your Docker Compose setup is working correctly.</p>
</body>
</html>
Pressione Ctrl+O seguido por Enter para salvar o arquivo, depois pressione Ctrl+X para sair do nano.
Executar o Projeto Docker Compose
Agora, vamos iniciar nosso projeto Docker Compose:
docker-compose up -d
A flag -d executa os contêineres em segundo plano (modo detached). Você deve ver uma saída semelhante a:
Creating network "docker-compose-test_default" with the default driver
Pulling web (nginx:alpine)...
Pulling redis (redis:alpine)...
[...]
Creating docker-compose-test_web_1 ... done
Creating docker-compose-test_redis_1 ... done
Verificar se os Serviços Estão em Execução
Vamos verificar se nossos serviços estão sendo executados corretamente:
docker-compose ps
Você deve ver uma saída semelhante a:
Name Command State Ports
------------------------------------------------------------------------------------
docker-compose-test_redis_1 docker-entrypoint.sh redis ... Up 6379/tcp
docker-compose-test_web_1 /docker-entrypoint.sh ngin ... Up 0.0.0.0:8080->80/tcp
Acessar a Aplicação Web
Agora você pode acessar a aplicação web abrindo um navegador web na interface do LabEx e navegando para http://localhost:8080. Você deve ver a mensagem "Hello from Docker Compose!".
Alternativamente, você pode usar curl para verificar o servidor web a partir da linha de comando:
curl http://localhost:8080
Você deve ver o conteúdo HTML que criamos anteriormente.
Parar o Projeto Docker Compose
Quando terminar os testes, você pode parar o projeto Docker Compose:
docker-compose down
Você deve ver uma saída semelhante a:
Stopping docker-compose-test_web_1 ... done
Stopping docker-compose-test_redis_1 ... done
Removing docker-compose-test_web_1 ... done
Removing docker-compose-test_redis_1 ... done
Removing network docker-compose-test_default
Parabéns! Você instalou com sucesso o Docker Compose, resolveu o erro "command not found" e testou sua configuração com uma aplicação simples de múltiplos contêineres.