O Docker Compose é par­ti­cu­lar­mente adequado para ambientes de de­sen­vol­vi­mento e teste mas também para im­plan­ta­ções de produção menores. Ex­pli­ca­mos como você pode or­ques­trar fa­cil­mente apli­ca­ti­vos Docker no Ubuntu com o Compose.

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

Antes de poder usar o Docker Compose, você deve garantir que seu sistema atenda aos seguintes pré-re­qui­si­tos:

  • Docker Engine: O Compose é uma extensão do Docker Engine que você precisa instalar.
  • Sistema ope­ra­ci­o­nal: Ubuntu, usuário sudo com pri­vi­lé­gios de root.
Dica

Para usar um sistema ope­ra­ci­o­nal que não seja o Linux, consulte nosso guia sobre como instalar o Docker Compose no Windows e o Docker Compose no macOS.

Guia passo a passo para instalar o Docker Compose no Ubuntu

Para usar o Docker Compose no Ubuntu, você deve primeiro instalar o Docker Engine e verificar se ele está sendo executado cor­re­ta­mente. Quando o Docker estiver em execução, baixe o Compose e crie o arquivo YAML para con­fi­gu­rar seus apli­ca­ti­vos.

Etapa 1: baixar e instalar o Docker Compose

Baixe a versão mais recente do Docker Compose do re­po­si­tó­rio oficial do GitHub, digitando o seguinte comando em um 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

Agora, você pode conceder direitos ao Docker Compose execute :

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

Use a opção --version para verificar se o Compose foi instalado com êxito.

$ docker-compose --version
shell

Você obterá o seguinte resultado:

Imagem: Docker Compose Version
Se você vir o número da versão, o Docker Compose foi instalado com sucesso.

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

Você também pode criar um link simbólico para o /usr/bin caminho:

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

Etapa 2: Con­fi­gu­rar o arquivo docker-compose.yml

Para de­mons­trar o design de um arquivo YAML do Docker Compose, usamos a imagem Nginx do Docker Hub oficial para o ambiente de contêiner.

Primeiro, crie uma nova pasta em seu diretório inicial:

$ mkdir ~/compose-test
shell

Alterne para o diretório e crie uma nova pasta para o diretório raiz de seu ambiente Nginx.

$ cd ~/compose-test
$ mkdir app
shell

Você pode usar qualquer editor de texto como o nano para criar index.html.

$ nano app/index.html
shell

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

<!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

Salve e feche o arquivo HTML e crie docker-compose.yml.

$ nano docker-compose.yml
shell

O conteúdo é dividido no número da versão da con­fi­gu­ra­ção e no 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, há um único serviço chamado “web” Ele está associado à imagem Nginx es­pe­ci­fi­cada e ao re­di­re­ci­o­na­mento de porta. Em nossa con­fi­gu­ra­ção, todas as so­li­ci­ta­ções feitas à porta 8000 no com­pu­ta­dor host são re­di­re­ci­o­na­das para o contêiner da Web na porta 80, onde o Nginx está em execução. Além disso, usamos um volume com­par­ti­lhado entre o host e o contêiner. Isso torna a pasta local “app” acessível ao apli­ca­tivo Nginx

Etapa 3: executar o Docker Compose

Com o comando a seguir, criamos um contêiner web **e exe­cu­ta­mos o ambiente do contêiner em segundo plano:

$ docker-compose up -d
shell

Se a imagem es­pe­ci­fi­cada no arquivo YAML não estiver presente no sistema local, ela será baixada au­to­ma­ti­ca­mente.

Para testar se o ambiente Nginx está em execução, digite o comando ps .

$ docker-compose ps
shell

A página de amostra que você criou an­te­ri­or­mente agora está acessível em localhost:8000 quando você executa a de­mons­tra­ção em seu com­pu­ta­dor. Se estiver usando um servidor remoto, basta es­pe­ci­fi­car o endereço IP do seu servidor em vez de “localhost”.

Imagem: Página de amostra do Docker Compose
Página de amostra para um contêiner Nginx

Você pode in­ter­rom­per o apli­ca­tivo do contêiner usando stop.

$ docker-compose stop
shell
Dica

Não sabe como começar a usar as fer­ra­men­tas de contêiner? Confira nosso Tutorial do Docker e nossa visão geral dos Comandos do Docker. Ou saiba mais sobre Or­ques­tra­ção do Docker com Swarm e Compose.

Ir para o menu principal