Copier des fichiers du container vers le host
La copie de fichier peut se faire dans le dockerfile ou docker-compose ce qui est préférable pour une utilisation durable.
Par exemple, un container execute un jar auto executable.
On copie donc le jar par le Dockerfile au lieu de le faire à chaque fois.
Exemple de Dockerfile:
FROM openjdk:8u131-alpine
RUN groupadd -r jaruser && useradd --no-log-init -r -g jaruser jaruser
ADD zip/*.zip /app.zip
RUN mkdir /myApp \
&& unzip app.zip -d /myApp \
&& chmod u+x /myApp/run_jar.sh
USER jaruser
ENTRYPOINT ["/myApp/run_jar.sh"]
Par contre, lors de tests il peut s'avérer pratique de copier spontanément un fichier entre le host et le container et inversément.
Du host vers le container
Il suffit d'utiliser la commande:
$ docker cp
Du container vers le host
- Il est possible de monter un volume partagé
-v $PWD/shared:/shared
et d'utiliser ce shared folder comme passerelle. - Il y a aussi la possibilité de recréer le fichier par ce workaround:
$ cat /local/file/path | docker exec -i <running-container-id> sh -c 'cat > /inside/docker/file/path'