dockerdocker-containerfile-copying

Copying files from Docker container to host


I'm thinking of using Docker to build my dependencies on a Continuous Integration (CI) server, so that I don't have to install all the runtimes and libraries on the agents themselves.

To achieve this I would need to copy the build artifacts that are built inside the container back into the host. Is that possible?


Solution

  • In order to copy a file from a container to the host, you can use the command

    docker cp <containerId>:/file/path/within/container /host/path/target
    

    Here's an example:

    $ sudo docker cp goofy_roentgen:/out_read.jpg .
    

    Here goofy_roentgen is the container name I got from the following command:

    $ sudo docker ps
    
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                            NAMES
    1b4ad9311e93        bamos/openface      "/bin/bash"         33 minutes ago      Up 33 minutes       0.0.0.0:8000->8000/tcp, 0.0.0.0:9000->9000/tcp   goofy_roentgen
    

    You can also use (part of) the Container ID. The following command is equivalent to the first

    $ sudo docker cp 1b4a:/out_read.jpg .