1. O método de cópia do contêiner em execução
Use docker cp
o comando para copiar arquivos de uma máquina física para um contêiner Docker em execução ou para copiar arquivos de um contêiner Docker para uma máquina física.
Por exemplo, para test.txt
copiar em mycontainer
um /app
diretório , você pode usar o seguinte comando:
Copie arquivos do host para o contêiner:
docker cp test.txt mycontainer:/app/test.txt
onde test.txt
é o arquivo local a ser copiado, mycontainer
é o nome do contêiner e /app/test.txt
é o caminho do arquivo do contêiner.
Se você deseja copiar os arquivos do contêiner do Docker para a máquina física, pode usar o seguinte comando:
Copie os arquivos do contêiner para o host:
docker cp mycontainer:/app/test.txt test.txt
Este comando mycontainer
implementa /app/test.txt
a cópia dos arquivos no contêiner para test.txt
os arquivos .
Observe que docker cp
o comando requer o Docker versão 1.8 ou posterior para funcionar. Além disso, você precisa garantir que tenha permissões de leitura e gravação suficientes para os arquivos a serem copiados.
2. Copie ao criar o dockerfile
No Dockerfile, você pode usar diretamente COPY
o ADD
comando ou para copiar o arquivo local para a imagem. O princípio é que, quando o Docker cria a imagem, ele primeiro copia o arquivo local para um diretório temporário e, em seguida, adiciona o diretório à imagem sistema de arquivo.
Quando COPY
o ADD
comando or é usado, o mecanismo de construção do Docker encontrará o arquivo ou diretório correspondente do contexto de construção de acordo com o caminho de origem especificado e o copiará para o caminho de destino na imagem. Se o caminho de origem for um diretório, o caminho de destino deverá /
terminar com , ou a operação COPY ou ADD falhará.
Por exemplo, no seguinte Dockerfile:
FROM nginx:latest
COPY index.html /usr/share/nginx/html/
ADD static.tar.gz /usr/share/nginx/html/
Este Dockerfile especifica nginx:latest
como a imagem base e, em seguida index.html
, copia os arquivos no diretório local para /usr/share/nginx/html/
o diretório . Ao criar uma imagem, o mecanismo de compilação do Docker primeiro index.html
copia para um diretório temporário e, em seguida, adiciona o diretório ao sistema de arquivos da imagem, para copiar os arquivos do local para a imagem.
Portanto, é possível copiar arquivos locais diretamente para o contêiner usando as diretivas COPY
ou . ADD
Além disso, isso também automatiza a cópia de arquivos na imagem, para que a imagem possa ser usada diretamente ao criar um novo contêiner, sem a necessidade de copiar os arquivos manualmente.