How to copy files from host to Docker container

This is a small how to for helping you copying files from your host filesystem to your container. Again this is not a normal practice but if you are debugging some stuff and want to copy a tool or a library or a file it can help.

Let’s assume we have this situation

$> docker ps
CONTAINER ID   IMAGE            COMMAND     STATUS         NAMES
5bdfd620b191   p2.7.18:latest   "/bin/sh"   Up 3 minutes   test-container

Please note that I deleted few columns in the output above (Created and Ports) that are not needed in this case.

If I want to copy a file that is on my filesystem to that docker container all I have to do is to run the docker cp command that will copy from/to filesystem/container

Let’s see how it works

Copy from filesystem to container

~$ mkdir ~/test-copy
~$ cd ~/test-copy
~$ touch copy-a
~$ # now I want to copy this file to the container 5bdfd620b191
~$ # all I have to do is docker cp copy-a 5bdfd620b191:/path
~$ docker cp copy-a 5bdfd620b191:/home
~$ # at this stage I will execute the shell of the container
~$ docker exec -it 5bdfd620b191 /bin/sh
/ # ls
bin    etc    lib    mnt    proc   run    srv    tmp    var
dev    home   media  opt    root   sbin   sys    usr
/ # ls /home/
copy-a

Super handy!

I can also reverse this action, and by that I mean copy from the container to the filesystem. Let’s assume that in my container this file exists /home/copy-b all I have to do is

~$ docker cp 5bdfd620b191:/home/copy-b .

And the result of this action will be…I have now copy-b file on my filesystem.

Hope it will help

d3

d3 is an experienced Software Engineer/Developer/Architect/Thinker with a demonstrated history of working in the information technology and services industry. Really passionate about technology, programming languages and problem solving. He doesn't like too much the self celebration and prefers to use that time doing something useful ...i.e. coding

You may also like...