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_PATHSERVIÇO: O nome do serviço definido no
docker-compose.ymlque 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 cppermite 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
Copiando um arquivo do host para um container:
Neste exemplo, o arquivo
localfile.txtdo host é copiado para o diretório/usr/src/app/no container do serviçoweb, sendo renomeado pararemote.txt.Copiando um arquivo do container para o host:
Aqui, o arquivo
remote.txtno container do serviçowebé copiado para o diretório atual no host e renomeado paralocalcopy.txt.Copiando um diretório inteiro do host para um container:
Todo o conteúdo do diretório
myfolderno host é copiado para o diretório/usr/src/app/no container do serviçoweb.Copiando um arquivo mantendo atributos de arquivo:
O arquivo
config.jsoné copiado do host para o containerweb, preservando atributos como permissões e timestamps.
Diferenças com Outros Comandos
docker cp: Odocker cpé a versão para containers Docker individuais, enquanto odocker 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 cppode 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