Docker · 10 min read · Nov 24, 2025

Docker: Como usá-lo de forma prática - Parte 3

Parte 3: Criação de um Bloco de Notas com contêineres WordPress e DokuWiki

Prefácio

Na primeira parte, falamos sobre como os contêineres Docker funcionam e diferem de outras tecnologias de virtualização de software e na segunda parte, preparamos nosso sistema para gerenciar contêineres Docker.

Nesta parte, começaremos a usar imagens Docker e criar contêineres de forma prática. Em outras palavras, criaremos um bloco de notas pessoal avançado baseado na web que roda sobre DokuWiki ou WordPress. Você pode escolher o que for mais confortável para você.

Como executar um contêiner Docker

Primeiro, devemos garantir que o mecanismo Docker esteja funcionando conforme necessário, baixando uma imagem “Hello world” e criando um contêiner a partir dela.

Lembre-se, quando falamos sobre uma imagem, ela é o estado suspenso, enquanto quando falamos sobre contêiner, é uma instância em tempo de execução de uma imagem Docker. Em uma analogia, que discutimos em uma parte anterior, uma imagem Docker é como o arquivo ISO de uma distribuição Linux, enquanto o contêiner é a sessão ao vivo do arquivo ISO como se você estivesse executando-a a partir de um pen drive USB.

Para baixar e executar a imagem “Hello world”, basta digitar no terminal

sudo docker run hello-world

Este comando baixa a imagem Hello World e a executa em um contêiner. Quando o contêiner é executado, ele imprime uma mensagem informativa e, em seguida, sai (o que significa que foi desligado).

Exemplo Docker Hello World.

Como verificamos quantas imagens temos em nosso sistema? Bem, simplesmente executamos

sudo docker images

Mostrar imagens Docker.

Você pode se perguntar, como meu sistema encontrou essa imagem Hello World e de onde ela veio? Bem, é aqui que o Docker Hub entra em cena.

Introdução ao Docker Hub

O Docker Hub é um recurso centralizado baseado em nuvem para descoberta de imagens de contêiner, construção de imagens e distribuição dessas imagens.
Especificamente, o Docker Hub fornece algumas funcionalidades e recursos úteis que discutiremos mais em partes posteriores.

Atualmente, vamos nos concentrar em um recurso e este é encontrar e baixar uma imagem Docker.

Pesquisando Imagens Docker

Você pode pesquisar por uma “imagem Docker pronta para download e execução”, visitando simplesmente o Docker Hub online ou usando o terminal. Note que você não pode baixar uma imagem Docker do hub web, mas pode aprender mais sobre uma imagem, como ela é construída e mantida, etc.

Então, para o propósito desta parte, vamos nos concentrar em usar o método do terminal. Vamos pesquisar por WordPress

sudo docker search wordpress

Pesquisar por imagens Docker.

Como você pode ver, há muitas imagens Docker do WordPress, que são construídas com várias combinações (por exemplo, com ou sem inclusão de banco de dados), elas são classificadas com estrelas de popularidade e são oficiais (mantidas pela empresa Docker) ou automatizadas (construídas e mantidas por indivíduos). É óbvio que qualquer um pode criar uma conta e enviar sua imagem Docker personalizada e discutiremos isso em uma parte posterior.

Baixando uma Imagem Docker

Para o propósito deste artigo, usaremos a versão mais recente da imagem Docker da Bitnami, que vem com MySQL pré-instalado. Então, vamos baixá-la:

sudo docker pull bitnami/wordpress:latest

Uma vez que você execute o comando acima, ele se comunicará com o Docker Hub, perguntará se há um repositório chamado “bitnami”, e então perguntará se há uma versão “WordPress” que está marcada como a versão “mais recente”.

Baixar imagem Docker.

Atualmente, baixamos uma imagem do WordPress e nada mais. Podemos prosseguir agora baixando uma imagem do DokuWiki, pesquisando uma e selecionando a que gostamos, ou usando a que está a seguir

sudo docker pull mprasil/dokuwiki

A arquitetura da Imagem Docker

Enquanto espera o procedimento de download ser concluído, você pode ver que uma imagem Docker é uma imagem de múltiplas camadas em cima de uma imagem base. Você pode ver cada camada sendo baixada e então “magicamente” unificada. O diagrama abaixo mostra uma imagem base do Ubuntu composta por 4 camadas de imagem empilhadas.

Arquitetura Docker - Parte 1

Como você pode imaginar, cada Imagem Docker referencia uma lista de camadas somente leitura que representam diferenças de sistema de arquivos. Quando você cria um novo contêiner, a partir de uma Imagem Docker como faremos, mais tarde, você adiciona uma nova camada fina e gravável em cima da pilha subjacente. Todas as alterações feitas no contêiner em execução - como escrever novos arquivos, modificar arquivos existentes e excluir arquivos - são escritas nesta camada de contêiner gravável fina. O diagrama abaixo mostra um contêiner baseado na imagem do Ubuntu 15.04.

Arquitetura Docker - Camadas.

Excluindo uma Imagem Docker

Agora, se você verificar quantas imagens tem em seu sistema

sudo docker images

você verá o WordPress, DokuWiki e o Hello World. Se por algum motivo você quiser remover e excluir (rmi) uma imagem, basta digitar

sudo docker rmi 

onde o nome da imagem é o nome do Docker como é exibido com o comando “docker images”. Por exemplo, se quisermos excluir o Hello World, podemos simplesmente digitar:

sudo docker rmi hello-world

Contêineres são efêmeros

Por design, os contêineres Docker são efêmeros. Por “efêmero”, queremos dizer que um contêiner pode ser parado e destruído e um novo pode ser construído a partir da mesma imagem Docker e colocado em funcionamento com um mínimo absoluto de configuração e preparação.

Assim, você deve ter em mente que quando criarmos um contêiner a partir da Imagem Docker de sua preferência (WordPress ou DokuWiki), quaisquer alterações que você fizer, por exemplo, adicionar um post, imagem, serão perdidas assim que você parar ou excluir o contêiner. Em outras palavras, quando um contêiner é excluído, quaisquer dados escritos no contêiner que não estão armazenados em um volume de dados são excluídos junto com o contêiner.

Um volume de dados é um diretório ou arquivo no sistema de arquivos do host Docker que é montado diretamente em um contêiner. Dessa forma, você pode trocar contêineres, com novos e manter quaisquer dados seguros na pasta inicial de seus usuários. Note que você pode montar qualquer número de volumes de dados em um contêiner. Mesmo múltiplos contêineres também podem compartilhar um ou mais volumes de dados.

O diagrama abaixo mostra um único host Docker (por exemplo, seu Ubuntu 15.10) executando dois contêineres. Como você pode ver, também há um único volume de dados compartilhado localizado em /data no host Docker. Isso é montado diretamente em ambos os contêineres.

Dados do Contêiner Docker

Dessa forma, quando um contêiner é excluído, quaisquer dados armazenados em volumes de dados persistem no host Docker e podem ser montados em um novo contêiner.

Rede de contêiner Docker

Quando você instala o Docker, ele cria um dispositivo de rede em seu sistema. Você pode visualizá-lo (ele será nomeado como docker0) como parte da pilha de rede de um host usando o comando ifconfig em seu sistema host.

É importante entender que os contêineres Docker são isolados e são micro-serviços individuais que têm suas próprias propriedades de rede e a maneira como os executamos e nos conectamos a eles é mapeando seu número de porta para um número de porta do sistema host.

Dessa forma, podemos expor o serviço web que um contêiner executa para o sistema host.

Criando um bloco de notas pessoal com um contêiner WordPress

Vamos começar a criar nosso bloco de notas de teste. Primeiro, usaremos a imagem WordPress para criar um contêiner Docker

sudo docker run --name=mynotepad -p 80:80 -p 443:443 bitnami/wordpress

Com o comando acima, pedimos ao serviço Docker em nosso sistema host para criar e executar (docker run) um contêiner chamado mynotepad (–name=mynotepad), mapear a porta HTTP e HTTPS do host e do contêiner (-p 80:80 -p 443:443) e usar a imagem WordPress (bitnami/wordpress)

Contêiner Docker Wordpress

Uma vez que o contêiner é inicializado, você será recebido com algumas informações sobre o contêiner. É hora de abrir um navegador e apontá-lo para http://localhost

Se tudo correr bem, você verá o site padrão do WordPress

Wordpress rodando no Docker.

Como você já deve saber, para fazer login na página de administração do WordPress, basta ir para http://localhost/login e usar as credenciais padrão usuário / bitnami. Então você pode criar um novo usuário ou um post de teste no WordPress e publicá-lo. Você pode ver meu post de teste na imagem abaixo

Wordpress no Docker

Vamos voltar ao terminal. Como você pode ver, seu terminal atualmente está vinculado ao contêiner em execução. Você pode usar Ctrl+C para sair. Isso também irá parar o contêiner.

Agora vamos verificar nossos contêineres disponíveis. Você pode executar o seguinte comando:

sudo docker ps -l

para visualizar o contêiner que criamos e executamos anteriormente.

Como você pode ver na imagem acima, há algumas informações importantes, como o nome do contêiner e o ID único do contêiner. Dessa forma, podemos iniciar o contêiner novamente:

docker start mynotepad

Então você pode verificar os processos que o contêiner Docker executa, com o seguinte comando:

sudo docker top mynotepad

Por padrão, com o docker start mynotepad, o contêiner Docker está sendo executado em segundo plano. Para pará-lo, você pode executar o seguinte comando

sudo docker stop mynotepad

Você pode ler mais sobre como interagir com o contêiner na documentação oficial do Docker https://docs.docker.com/engine/userguide/containers/usingdocker/

Onde estão os contêineres

Se você quiser ver onde os contêineres estão no sistema de arquivos do host, então você pode ir para /var/lib/docker

sudo cd /var/lib/docker  
sudo ls  
sudo cd containers  
sudo cd ID  
sudo ls

Como você pode ver, os números de ID representam os contêineres reais que você criou.

Criando armazenamento persistente

Vamos criar um novo contêiner WordPress, mas desta vez, o colocaremos em segundo plano e também exporemos a pasta do WordPress para nosso sistema host, para que possamos colocar arquivos nela ou remover quaisquer arquivos que não queremos.

Primeiro, criamos uma pasta em nosso diretório inicial

mkdir ~/wordpress-files

e então executamos e criamos um contêiner baseado na mesma imagem que criamos anteriormente:

sudo docker run -d -ti --name=mynotepad-v2 -v ~/wordpress-files:/opt/bitnami/apps -e USER_UID=`id -u` -p 80:80 bitnami/wordpress

A diferença, desta vez, é que usamos o parâmetro -d para modo destacado e o parâmetro -ti para anexar um terminal em modo interativo, para que eu possa interagir com ele mais tarde.

Para verificar o contêiner em execução, basta executar o seguinte comando

sudo docker ps

Vamos parar o contêiner

sudo docker stop mynotepad-v2

Agora, se você executar o comando docker ps, não verá nada lá.
Vamos iniciá-lo novamente com o seguinte comando:

sudo docker start mynotepad-v2

Se você verificar a pasta que criamos anteriormente, verá a instalação do WordPress

Você pode ler mais sobre a imagem que usamos no Docker Hub https://hub.docker.com/r/bitnami/wordpress/

Criando um bloco de notas pessoal com um contêiner DokuWiki

Desta vez, criaremos um bloco de notas usando DokuWiki. Como já baixamos a imagem anteriormente, a única coisa que resta a fazer é criar um contêiner a partir dela.

Então, vamos executar o seguinte comando para criar nosso contêiner nomeado mywikipad

docker run -d -p 80:80 --name mywikipad mprasil/dokuwiki

E então vá para o seu navegador e adicione o seguinte endereço para iniciar a configuração do seu bloco de notas wiki:

http://localhost/install.php

Você pode aprender mais sobre DokuWiki na documentação oficial e personalizar a wiki para suas necessidades:

https://www.dokuwiki.org/manual

Dokuwiki no Docker

Excluindo um contêiner Docker

Uma vez que você esteja confortável em criar, iniciar e parar contêineres Docker, você se verá na necessidade de limpar a bagunça de testes criada pelos múltiplos contêineres.

Para excluir um contêiner, primeiro você precisará pará-lo e depois excluí-lo executando o seguinte comando:

docker rm 

Você também pode adicionar múltiplos IDs no mesmo comando docker rm para excluir múltiplos contêineres Docker ao mesmo tempo.

Resumo

Nesta parte, aprendemos como criar um contêiner e usá-lo de forma prática para criar um bloco de notas pessoal baseado em WordPress ou DokuWiki. Vimos alguns comandos básicos sobre como iniciar e parar os contêineres que criamos e como excluir as imagens e os contêineres.

Na próxima parte, daremos uma olhada em como as imagens Docker são criadas, criando a nossa própria.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.