Copiar um arquivo local para dentro de um contêiner
Nesta etapa, você aprenderá como copiar um arquivo do seu sistema de arquivos local para um contêiner Docker em execução. Esta é uma tarefa comum quando você precisa adicionar arquivos de configuração, scripts ou outros dados a um contêiner após ele ter sido iniciado.
Primeiro, vamos criar um arquivo de texto simples na sua máquina local dentro do diretório ~/project.
echo "This is a test file." > ~/project/test_file.txt
Este comando cria um arquivo chamado test_file.txt no seu diretório ~/project e escreve o texto "This is a test file." nele.
Em seguida, precisamos de um contêiner em execução para copiar o arquivo. Usaremos uma imagem ubuntu simples para este fim. Como a imagem pode não estar presente localmente, primeiro faremos o pull dela.
docker pull ubuntu:latest
Este comando baixa a versão mais recente da imagem ubuntu do Docker Hub.
Agora, vamos executar um contêiner baseado na imagem ubuntu. Vamos executá-lo em modo detached (-d) e dar-lhe um nome (my_ubuntu_container) para fácil identificação.
docker run -d --name my_ubuntu_container ubuntu:latest sleep infinity
Este comando inicia um novo contêiner chamado my_ubuntu_container usando a imagem ubuntu:latest. O comando sleep infinity mantém o contêiner em execução indefinidamente, o que é útil para fins de demonstração.
Você pode verificar se o contêiner está em execução usando o comando docker ps.
docker ps
Você deve ver my_ubuntu_container listado na saída.
Agora, podemos copiar o test_file.txt da sua máquina local para o contêiner em execução usando o comando docker cp. A sintaxe é docker cp <local_path> <container_name>:<container_path>.
docker cp ~/project/test_file.txt my_ubuntu_container:/tmp/
Este comando copia o arquivo ~/project/test_file.txt para o diretório /tmp/ dentro do my_ubuntu_container.
Para verificar se o arquivo foi copiado com sucesso, você pode executar um comando dentro do contêiner usando docker exec. Usaremos ls para listar os arquivos no diretório /tmp/ do contêiner.
docker exec my_ubuntu_container ls /tmp/
Você deve ver test_file.txt listado na saída, confirmando que o arquivo foi copiado com sucesso.
Finalmente, vamos limpar o contêiner que criamos.
docker stop my_ubuntu_container
docker rm my_ubuntu_container
Estes comandos param e removem o contêiner, respectivamente.