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
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
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çoweb
, sendo renomeado pararemote.txt
.Copiando um arquivo do container para o host:
Aqui, o arquivo
remote.txt
no 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
myfolder
no 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 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