Aprender tecnologia não exige sessões de estudo de várias horas. Em muitos casos, 15 ou 30 minutos de prática focada são suficientes para consolidar conceitos importantes. Nesta sessão de estudos, explorei comandos básicos do Linux, navegação pelo sistema de arquivos, análise de containers Docker e atualização de uma aplicação executada em um ambiente conteinerizado.

Começando pelo básico: explorando o sistema de arquivos

A prática começou com alguns comandos fundamentais do Linux:

pwd
ls
cd
find

Com eles, é possível descobrir onde estamos no sistema, listar arquivos e diretórios e navegar pela estrutura de pastas.

Um aprendizado importante foi a diferença entre caminhos relativos e absolutos.

Por exemplo:

cd projetos

utiliza um caminho relativo, enquanto:

cd /opt/projetos

utiliza um caminho absoluto, começando pela raiz do sistema.

Entender essa diferença evita muitos erros durante a navegação.

Usando o comando find na prática

O comando find é uma das ferramentas mais úteis do Linux.

Alguns exemplos:

find .

Lista tudo a partir do diretório atual.

find . -type d

Mostra apenas diretórios.

find . -type f

Mostra apenas arquivos.

Também foi possível combinar o resultado com outros comandos:

find . -type f | wc -l

Esse comando conta quantos arquivos existem em determinada estrutura.

Entendendo mensagens de erro

Durante os testes surgiram erros simples de digitação e caminhos inexistentes.

Por exemplo:

cd diretorio-inexistente

gera uma mensagem semelhante a:

No such file or directory

Essas mensagens não são problemas. Elas fazem parte do processo de aprendizagem.

O importante é interpretar o erro, corrigir o comando e continuar.

Explorando containers Docker

A segunda parte do estudo envolveu Docker.

Primeiro foi necessário listar os containers em execução:

docker ps

Depois foi possível acessar um container:

docker exec -it nome-do-container sh

Ao entrar em um container, percebi que ele possui seu próprio sistema de arquivos e usuários, separados do sistema operacional principal.

Esse conceito é fundamental para entender o isolamento proporcionado pelos containers.

Diferença entre host e container

Um aprendizado importante foi distinguir o ambiente do host do ambiente interno do container.

No host:

whoami

retorna o usuário do sistema principal.

Dentro do container, o resultado pode ser completamente diferente.

Da mesma forma, alguns comandos disponíveis no host não existem dentro do container.

Por exemplo, tentar executar comandos administrativos do Docker dentro de um container normalmente não funciona, pois o Docker Engine está rodando no host.

Investigando arquivos e diretórios ocultos

Utilizando:

ls -la

foi possível visualizar diretórios ocultos.

Muitas aplicações armazenam configurações em diretórios iniciados por ponto:

.config
.cache
.app

Esse padrão é bastante comum em sistemas Linux.

Entendendo volumes Docker

Um dos conceitos mais importantes estudados foi o de volumes.

Em um arquivo Compose é comum encontrar algo semelhante a:

volumes:
  - ./dados:/app/data

Isso significa que os dados armazenados dentro do container são persistidos em uma pasta do host.

Sem esse mecanismo, a remoção do container poderia resultar na perda de informações importantes.

Criando backups antes de alterações

Antes de realizar qualquer atualização, foi criado um backup utilizando:

tar -czf backup.tar.gz pasta_de_dados

Essa etapa mostrou uma prática fundamental de administração de sistemas:

Nunca atualizar um serviço sem possuir um backup recente.

Mesmo em ambientes pequenos, essa precaução reduz significativamente os riscos.

Permissões no Linux

Outro tema abordado foi o sistema de permissões.

Nem todo arquivo que pode ser lido pode ser modificado.

Por exemplo:

-rw-r--r--

indica que apenas o proprietário possui permissão de escrita.

Isso explica situações em que é possível visualizar um arquivo com cat, mas não salvá-lo utilizando um editor de texto.

Nesses casos, pode ser necessário utilizar privilégios administrativos:

sudo nano arquivo.yml

Atualizando aplicações em Docker

Após validar configurações e criar backups, foi realizada uma atualização controlada de uma aplicação em container.

O processo seguiu etapas simples:

  1. Criar backup.

  2. Validar o arquivo Compose.

  3. Baixar a nova imagem.

  4. Recriar o container.

  5. Confirmar a versão instalada.

  6. Verificar logs e funcionamento.

Essa abordagem reduz riscos e facilita o retorno para uma versão anterior caso algo inesperado aconteça.

Conclusão

Mesmo em uma sessão curta de estudos foi possível revisar conceitos fundamentais de Linux e Docker:

  • Navegação no sistema de arquivos.

  • Uso do comando find.

  • Leitura de mensagens de erro.

  • Containers Docker.

  • Diferença entre host e container.

  • Volumes persistentes.

  • Permissões de arquivos.

  • Backups.

  • Atualização segura de aplicações.

A principal lição do dia foi que a evolução técnica acontece através da prática constante. Não é necessário estudar durante horas todos os dias. Pequenas sessões de aprendizado, quando realizadas com frequência, acumulam conhecimento e experiência ao longo do tempo.