Contêiner: Docker Compose no Ubuntu 16.04
O que é Docker Compose
Docker Compose é uma ferramenta para executar aplicativos Docker com vários contêineres. Para configurar os serviços de uma aplicação com o Compose utilizamos um arquivo de configuração, e então, executando um único comando, é possível criar e iniciar todos os serviços especificados na configuração.
Docker Compose é útil para muitos projetos diferentes, como:
- Desenvolvimento: com as ferramentas de linha de comando do Compose criamos (e interagimos com) um ambiente isolado que hospedará a aplicação que está sendo desenvolvida.
Ao usar o arquivo Compose, os desenvolvedores documentam e configuram todas as dependências de serviço do aplicativo. - Testes automatizados: este caso de uso requer um ambiente para execução de testes. O Compose fornece uma maneira conveniente de gerenciar ambientes de teste isolados para um conjunto de testes. O ambiente completo é definido no arquivo Compose.
Docker Compose foi feito no código-fonte Fig, um projeto comunitário agora não utilizado.
Neste tutorial veremos como instalar o Docker Compose em uma máquina Ubuntu 16.04.
Instale o Docker
Precisamos do Docker para instalar o Docker Compose. Primeiro, adicione a chave pública do repositório oficial do Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add-
Em seguida, adicione o repositório Docker ao
apt
lista de fontes:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Atualize o banco de dados de pacotes e instale o Docker com
apt
:
sudo apt-get update
sudo apt install docker-ce
No final do processo de instalação, o daemon Docker deve ser iniciado e habilitado para carregamento no momento da inicialização. Podemos verificar seu status com o seguinte comando:
sudo systemctl status docker
---------------------------------
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running)
Instale o Docker Compose
Neste ponto é possível instalar o Docker Compose. Baixe a versão atual executando o seguinte comando:
curl -L https://github.com/docker/compose/releases/download/1.14.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
Torne o executável binário baixado:
chmod +x /usr/local/bin/docker-compose
Verifique a versão do Docker Compose:
docker-compose -v
A saída deve ser algo assim:
docker-compose version 1.14.0, build c7bdf9e
Testando o Docker Compose
O Docker Hub inclui uma imagem Hello World para fins de demonstração, ilustrando a configuração necessária para executar um contêiner com Docker Compose.
Crie um novo diretório e vá para ele:
mkdir hello-world
cd hello-world
Crie um novo arquivo YAML:
$EDITOR docker-compose.yml
Neste arquivo cole o seguinte conteúdo:
unixmen-compose-test:
image: hello-world
Observação: a primeira linha é usada como parte do nome do contêiner.
Salvar e sair.
Execute o contêiner
Em seguida, execute o seguinte comando no diretório hello-world
:
sudo docker-compose up
Se tudo estiver correto, esta deverá ser a saída mostrada pelo Compose:
Pulling unixmen-compose-test (hello-world:latest)...
latest: Pulling from library/hello-world
b04784fba78d: Pull complete
Digest: sha256:f3b3b28a45160805bb16542c9531888519430e9e6d6ffc09d72261b0d26ff74f
Status: Downloaded newer image for hello-world:latest
Creating helloworld_unixmen-compose-test_1 ...
Creating helloworld_unixmen-compose-test_1 ... done
Attaching to helloworld_unixmen-compose-test_1
unixmen-compose-test_1 |
unixmen-compose-test_1 | Hello from Docker!
unixmen-compose-test_1 | This message shows that your installation appears to be working correctly.
unixmen-compose-test_1 |
unixmen-compose-test_1 | To generate this message, Docker took the following steps:
unixmen-compose-test_1 | 1. The Docker client contacted the Docker daemon.
unixmen-compose-test_1 | 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
unixmen-compose-test_1 | 3. The Docker daemon created a new container from that image which runs the
unixmen-compose-test_1 | executable that produces the output you are currently reading.
unixmen-compose-test_1 | 4. The Docker daemon streamed that output to the Docker client, which sent it
unixmen-compose-test_1 | to your terminal.
unixmen-compose-test_1 |
unixmen-compose-test_1 | To try something more ambitious, you can run an Ubuntu container with:
unixmen-compose-test_1 | $ docker run -it ubuntu bash
unixmen-compose-test_1 |
unixmen-compose-test_1 | Share images, automate workflows, and more with a free Docker ID:
unixmen-compose-test_1 | https://cloud.docker.com/
unixmen-compose-test_1 |
unixmen-compose-test_1 | For more examples and ideas, visit:
unixmen-compose-test_1 | https://docs.docker.com/engine/userguide/
unixmen-compose-test_1 |
helloworld_unixmen-compose-test_1 exited with code 0
Os contêineres Docker só são executados enquanto o comando estiver ativo, portanto, o contêiner irá parar quando a execução do teste terminar.
Conclusão
Isso conclui o tutorial sobre a instalação do Docker Compose em uma máquina Ubuntu 16.04. Também vimos como criar um projeto simples através do arquivo Compose no formato YAML.