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:
-
Criar backup.
-
Validar o arquivo Compose.
-
Baixar a nova imagem.
-
Recriar o container.
-
Confirmar a versão instalada.
-
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.