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-worldEste 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).

Como verificamos quantas imagens temos em nosso sistema? Bem, simplesmente executamos
sudo docker images
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
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:latestUma 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”.

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/dokuwikiA 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.

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.

Excluindo uma Imagem Docker
Agora, se você verificar quantas imagens tem em seu sistema
sudo docker imagesvocê 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-worldContê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.

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/wordpressCom 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)

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

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

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 -lpara 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 mynotepadEntão você pode verificar os processos que o contêiner Docker executa, com o seguinte comando:
sudo docker top mynotepadPor 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 mynotepadVocê 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 lsComo 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-filese 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/wordpressA 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-v2Agora, se você executar o comando docker ps, não verá nada lá.
Vamos iniciá-lo novamente com o seguinte comando:
sudo docker start mynotepad-v2Se 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/dokuwikiE 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.phpVocê pode aprender mais sobre DokuWiki na documentação oficial e personalizar a wiki para suas necessidades:
https://www.dokuwiki.org/manual
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.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.