Navegando pelo Sistema de Ficheiros Docker
Ao trabalhar com contêineres Docker, é importante compreender como o sistema de ficheiros Docker é estruturado e como o navegar. Cada contêiner Docker tem o seu próprio sistema de ficheiros isolado, separado do sistema operativo anfitrião e de outros contêineres.
Compreendendo o Sistema de Ficheiros Docker
O sistema de ficheiros Docker é composto por várias camadas, que são empilhadas umas sobre as outras para formar a imagem final do contêiner. Estas camadas são criadas durante a construção da imagem Docker e baseiam-se nas instruções no Dockerfile.
graph TD
subgraph Sistema de Ficheiros Docker
Image_Layer_1 --> Image_Layer_2
Image_Layer_2 --> Image_Layer_3
Image_Layer_3 --> Container_Layer
end
A camada superior é a camada do contêiner, que é a camada gravável onde quaisquer alterações feitas durante o tempo de execução do contêiner são armazenadas. As camadas de imagem subjacentes são de leitura-somente e fornecem a base para o contêiner.
Aceder ao Sistema de Ficheiros Docker
Para aceder ao sistema de ficheiros de um contêiner Docker em execução, pode usar o comando docker exec para abrir um shell dentro do contêiner. Por exemplo:
docker exec -it my-container /bin/bash
Isto abrirá um shell Bash dentro do contêiner my-container, permitindo-lhe navegar pelo sistema de ficheiros e realizar várias operações.
Mapear Directorias entre o Anfitrião e o Contêiner
Pode mapear directorias do sistema operativo anfitrião para o sistema de ficheiros do contêiner usando volumes Docker ou bind mounts. Isto permite-lhe persistir dados, partilhar ficheiros ou aceder a recursos do anfitrião a partir do contêiner.
Para criar um bind mount, pode usar a flag -v ou --mount ao executar um contêiner:
docker run -v /host/path:/container/path my-image
Isto montará a directoria /host/path no anfitrião para a directoria /container/path dentro do contêiner.
Compreender a estrutura do sistema de ficheiros Docker e como o navegar é crucial para gerir e solucionar problemas de aplicações baseadas em Docker.