How to copy a file from a running Docker container to host?

Posted March 15, 2020 39.1k views
Linux BasicsDockerLinux Commands

As a good practice, you should treat containers as immutable and not make any direct changes during runtime. However, there are some cases when you would need to copy a file from your container to your Docker host for a lot of possible reasons.

Here’s how to do that!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
2 answers

In order to copy a file from a running container to your host you first need to get your Docker container ID, you can do that with the following command:

  • docker ps

Then once you have your container ID, you can run the following:

  • docker cp container_id:/path/to/your_file.txt /path/on/your/host

Make sure to update the path to the file inside the container and the path on your host where you want to store the file.

You can also use the container name rather than the container ID.

Here is also a quick video on how to do that as well:

Hope that this helps!

hello, thank you, in my case I copied the logs to my host but I need they are permanent, in other words I want to the logs keep writing in my host, in that case what can I do? and the other solution is put a volume in the docker-compose and run again everything but that one is not that the case.

I hope you can help. greetings.

  • Hi there @jsoto,

    Yes in this case what you could do is use a Docker volume and mount your logs directory to your host.

    That way the Docker container will be writing the logs and they will be available on the host as well.

    Hope that this helps.