Iniciar um projeto Compose de exemplo
Nesta etapa, aprenderemos como iniciar um projeto Compose de exemplo. Antes de podermos usar o Docker Compose, precisamos instalá-lo. Como o ambiente da VM LabEx não possui o Docker Compose pré-instalado, vamos instalá-lo primeiro.
Vamos baixar o binário do Docker Compose e torná-lo executável.
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Após a instalação, podemos verificar a instalação verificando a versão do Docker Compose.
docker-compose --version
Você deve ver as informações da versão impressas no console, confirmando que o Docker Compose está instalado corretamente.
Agora, vamos criar um projeto Compose simples. Criaremos um diretório para nosso projeto e, em seguida, criaremos um arquivo docker-compose.yml dentro dele. Este arquivo definirá os serviços para nossa aplicação.
Primeiro, crie um diretório chamado my-compose-app.
mkdir ~/project/my-compose-app
cd ~/project/my-compose-app
Em seguida, crie um arquivo chamado docker-compose.yml no diretório ~/project/my-compose-app usando o editor nano.
nano docker-compose.yml
Adicione o seguinte conteúdo ao arquivo docker-compose.yml. Este arquivo define um único serviço chamado web que usa a imagem nginx.
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
Salve o arquivo e saia do editor nano (Pressione Ctrl + X, depois Y, depois Enter).
Antes de iniciar o serviço, precisamos garantir que a imagem nginx:latest esteja disponível localmente. Podemos baixar a imagem usando o comando docker pull.
docker pull nginx:latest
Agora que temos o arquivo docker-compose.yml e a imagem necessária, podemos iniciar o projeto Compose usando o comando docker-compose up. A flag -d executa os serviços em modo detached (desanexado), o que significa que eles serão executados em segundo plano.
docker-compose up -d
Este comando criará e iniciará o serviço web conforme definido no arquivo docker-compose.yml. Você deve ver a saída indicando que o serviço está sendo criado e iniciado.
Para verificar se o serviço está em execução, você pode usar o comando docker ps para listar os contêineres em execução. Você deve ver um contêiner para o serviço web.
docker ps
Você também pode acessar o servidor web Nginx abrindo um navegador web e navegando até o endereço IP da sua VM LabEx. Como mapeamos a porta 80 do contêiner para a porta 80 do host, você deve ver a página de boas-vindas padrão do Nginx.