O Docker Compose é es­pe­ci­al­mente adequado para ambientes de de­sen­vol­vi­mento e teste, bem como para pequenas im­ple­men­ta­ções de projetos. Ex­pli­ca­mos-lhe como pode or­ques­trar fa­cil­mente apli­ca­ções no Ubuntu com o Docker Compose.

Quais são os re­qui­si­tos para o Docker Compose no Ubuntu?

Antes de poder utilizar o Docker Compose, cer­ti­fi­que-se de que o seu sistema cumpre os seguintes re­qui­si­tos:

  • O Docker Engine: Compose é uma extensão do Docker Engine, que deve estar instalado.
  • Sistema operativo: Ubuntu e um uti­li­za­dor sudo com pri­vi­lé­gios de root.
Dica

Se pretender utilizar um sistema operativo al­ter­na­tivo ao Linux, consulte o nosso guia sobre como instalar o Docker Compose no Windows ou como instalar o Docker Compose no macOS.

Guia passo a passo: instalar o Docker Compose no Ubuntu

Para utilizar o Docker Compose no Ubuntu, primeiro deve instalar o Docker Engine no seu sistema e verificar se está a funcionar cor­re­ta­mente. Assim que o Docker estiver a funcionar, pode des­car­re­gar o Compose e criar o ficheiro YAML para con­fi­gu­rar as suas apli­ca­ções.

Passo 1. Des­car­re­gar e instalar o Docker Compose

Des­car­re­gue a versão mais recente do Docker Compose do re­po­si­tó­rio oficial do GitHub. Execute o seguinte comando no seu terminal:

$ curl -SL https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
shell

Em seguida, conceda per­mis­sões de execução ao Docker Compose:

$ sudo chmod +x /usr/local/bin/docker-compose
shell

A opção --version permite-lhe verificar se o Compose foi instalado cor­re­ta­mente.

$ docker-compose --version
shell

O resultado será o seguinte:

Imagem: Versión de Docker Compose
Si te aparece tu versión de Docker Compose, quiere decir que se ha instalado cor­rec­ta­mente.

Se a ins­ta­la­ção falhar, deve verificar o caminho.

Também podes criar um link simbólico para o diretório /usr/bin:

$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
shell

Passo 2. Con­fi­gu­rar o ficheiro docker-compose.yml

Para te mostrar o formato de um ficheiro YAML do Docker Compose, vamos utilizar a imagem do Nginx do re­po­si­tó­rio oficial do Docker Hub para o ambiente de con­ten­to­res.

Primeiro, crie uma nova pasta no seu diretório principal:

$ mkdir ~/compose-test
shell

Vá para o diretório que acabou de criar e crie uma nova pasta para o diretório raiz do seu ambiente Nginx.

$ cd ~/compose-test
$ mkdir app
shell

Podes utilizar qualquer editor de texto para criar um ficheiro index.html, por exemplo, o nano.

$ nano app/index.html
shell

Aqui está o código HTML de uma página de exemplo:

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Docker Compose Test</title>
</head>
<body>
    <h1>This is a Docker Compose Test Page for an Nginx container.</h1>
</body>
</html>
html

Guarde e feche o ficheiro HTML e crie o ficheiro docker-compose.yml.

$ nano docker-compose.yml
shell

O conteúdo está dividido em duas partes: o número da versão da con­fi­gu­ra­ção e o bloco de serviços.

version: '3.9'
services:
    web:
        image: nginx:alpine
        ports:
            - "8000:80"
        volumes:
- ./app:/usr/share/nginx/html
YAML

No bloco de serviços, «web» aparece como o único serviço. Em seguida, aparece a imagem do Nginx utilizado e o re­di­re­ci­o­na­mento de portas. No nosso caso, todos os pedidos à porta 8000 do host são re­di­re­ci­o­na­dos para o contentor web na porta 80, onde o Nginx é executado. Além disso, uti­li­za­mos um volume par­ti­lhado entre o host e o contentor. Assim, a pasta local «app» fica acessível para a aplicação do Nginx.

Passo 3. Executar o Docker Compose

Com o comando apre­sen­tado abaixo, criamos um contentor web e exe­cu­ta­mos o ambiente do contentor em segundo plano:

$ docker-compose up -d
shell

Se a imagem indicada no ficheiro YAML não estiver dis­po­ní­vel no sistema local, será des­car­re­gada au­to­ma­ti­ca­mente.

Pode in­tro­du­zir o comando ps para verificar se o ambiente Nginx está a funcionar cor­re­ta­mente.

$ docker-compose ps
shell

A página de exemplo que criou an­te­ri­or­mente já está acessível em localhost:8000 se executar a de­mons­tra­ção lo­cal­mente no seu com­pu­ta­dor. Se utilizar um servidor remoto, basta in­tro­du­zir o endereço IP do seu servidor em vez de «localhost».

Imagem: Página de ejemplo de Docker Compose
Página de ejemplo para un con­te­ne­dor Nginx

Com stop, pode parar a aplicação do contentor.

$ docker-compose stop
shell
Ir para o menu principal