Ubuntu: instalar o Docker Compose
O Docker Compose é especialmente adequado para ambientes de desenvolvimento e teste, bem como para pequenas implementações de projetos. Explicamos-lhe como pode orquestrar facilmente aplicações no Ubuntu com o Docker Compose.
Quais são os requisitos para o Docker Compose no Ubuntu?
Antes de poder utilizar o Docker Compose, certifique-se de que o seu sistema cumpre os seguintes requisitos:
- O Docker Engine: Compose é uma extensão do Docker Engine, que deve estar instalado.
- Sistema operativo: Ubuntu e um utilizador sudo com privilégios de root.
Se pretender utilizar um sistema operativo alternativo 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 corretamente. Assim que o Docker estiver a funcionar, pode descarregar o Compose e criar o ficheiro YAML para configurar as suas aplicações.
Passo 1. Descarregar e instalar o Docker Compose
Descarregue a versão mais recente do Docker Compose do repositó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-composeshellEm seguida, conceda permissões de execução ao Docker Compose:
$ sudo chmod +x /usr/local/bin/docker-composeshellA opção --version permite-lhe verificar se o Compose foi instalado corretamente.
$ docker-compose --versionshellO resultado será o seguinte:

Se a instalaçã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-composeshellPasso 2. Configurar o ficheiro docker-compose.yml
Para te mostrar o formato de um ficheiro YAML do Docker Compose, vamos utilizar a imagem do Nginx do repositório oficial do Docker Hub para o ambiente de contentores.
Primeiro, crie uma nova pasta no seu diretório principal:
$ mkdir ~/compose-testshellVá 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 appshellPodes utilizar qualquer editor de texto para criar um ficheiro index.html, por exemplo, o nano.
$ nano app/index.htmlshellAqui 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>htmlGuarde e feche o ficheiro HTML e crie o ficheiro docker-compose.yml.
$ nano docker-compose.ymlshellO conteúdo está dividido em duas partes: o número da versão da configuração e o bloco de serviços.
version: '3.9'
services:
web:
image: nginx:alpine
ports:
- "8000:80"
volumes:
- ./app:/usr/share/nginx/htmlYAMLNo bloco de serviços, «web» aparece como o único serviço. Em seguida, aparece a imagem do Nginx utilizado e o redirecionamento de portas. No nosso caso, todos os pedidos à porta 8000 do host são redirecionados para o contentor web na porta 80, onde o Nginx é executado. Além disso, utilizamos um volume partilhado 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 apresentado abaixo, criamos um contentor web e executamos o ambiente do contentor em segundo plano:
$ docker-compose up -dshellSe a imagem indicada no ficheiro YAML não estiver disponível no sistema local, será descarregada automaticamente.
Pode introduzir o comando ps para verificar se o ambiente Nginx está a funcionar corretamente.
$ docker-compose psshellA página de exemplo que criou anteriormente já está acessível em localhost:8000 se executar a demonstração localmente no seu computador. Se utilizar um servidor remoto, basta introduzir o endereço IP do seu servidor em vez de «localhost».

Com stop, pode parar a aplicação do contentor.
$ docker-compose stopshell