docker compose cp

O comando docker compose cp permite copiar arquivos ou diretórios entre o sistema de arquivos do host e os containers gerenciados pelo Docker Compose. Este comando é uma extensão do docker cp, mas adaptado para funcionar com os serviços definidos em um arquivo docker-compose.yml.

Estrutura do Comando

docker compose cp [opções] SERVIÇO:SRC_PATH DEST_PATH
docker compose cp [opções] SRC_PATH SERVIÇO:DEST_PATH
  • SERVIÇO: O nome do serviço definido no docker-compose.yml que especifica o container de origem ou destino.

  • SRC_PATH: O caminho do arquivo ou diretório que você deseja copiar. Pode ser um caminho no host ou no container.

  • DEST_PATH: O caminho de destino onde o arquivo ou diretório será copiado. Pode ser um caminho no host ou no container.

Principais Opções

  • --archive, -a: Preserva atributos de arquivo, como permissões, ao copiar arquivos e diretórios.

  • --follow-link, -L: Segue links simbólicos durante a cópia.

Comportamento Padrão

  • Cópia Bidirecional: O docker compose cp permite copiar arquivos tanto do host para o container quanto do container para o host. Isso é útil para transferir dados, configurações, ou qualquer outro tipo de arquivo entre os ambientes de desenvolvimento ou produção.

  • Cópia de Diretórios: Se um diretório é especificado como o caminho de origem, todo o conteúdo do diretório será copiado para o destino, preservando a estrutura.

  • Interação com Containers: O comando funciona com containers de serviços específicos dentro de um projeto gerenciado pelo Docker Compose, facilitando a manipulação de arquivos sem a necessidade de acessar diretamente os containers individuais.

Exemplos

  1. Copiando um arquivo do host para um container:

    Neste exemplo, o arquivo localfile.txt do host é copiado para o diretório /usr/src/app/ no container do serviço web, sendo renomeado para remote.txt.

  2. Copiando um arquivo do container para o host:

    Aqui, o arquivo remote.txt no container do serviço web é copiado para o diretório atual no host e renomeado para localcopy.txt.

  3. Copiando um diretório inteiro do host para um container:

    Todo o conteúdo do diretório myfolder no host é copiado para o diretório /usr/src/app/ no container do serviço web.

  4. Copiando um arquivo mantendo atributos de arquivo:

    O arquivo config.json é copiado do host para o container web, preservando atributos como permissões e timestamps.

Diferenças com Outros Comandos

  • docker cp: O docker cp é a versão para containers Docker individuais, enquanto o docker compose cp é projetado para trabalhar dentro do contexto de um projeto gerenciado pelo Docker Compose, lidando com serviços em vez de containers específicos.

  • Volumes Montados: Se você estiver usando volumes para compartilhar arquivos entre o host e o container, o docker compose cp pode ser menos necessário, mas ainda é útil para operações pontuais de transferência de arquivos.

Quando Utilizar

O comando docker compose cp é útil em situações onde você precisa copiar arquivos entre o host e os containers, especialmente para operações de depuração, transferência de dados, ou preparação de ambientes. É ideal para mover arquivos de configuração, logs, ou outros dados que precisam ser acessados ou modificados diretamente.

Considerações Finais

O docker compose cp é uma ferramenta conveniente para manipular arquivos dentro e fora dos containers em projetos gerenciados pelo Docker Compose. Ele simplifica o processo de transferência de arquivos sem a necessidade de desmontar volumes ou acessar manualmente os containers, tornando-o uma opção eficiente para desenvolvedores e administradores de sistemas que trabalham com ambientes de containerização.

Last updated