copy directories in docker container excluding any one directory

+2 votes

I am having some directories/files, and I want to copy all directories/files except my_data directory from host to Docker container. The command mentioned below is working fine and is fulfilling my purpose to copy all the directories/files in the container:

docker cp ./ container_name:/my-dir

I want to copy all the directories/files from host to container except my_data dir. How can I do that?

Apr 3, 2018 in Docker by Atul
• 10,240 points
7,657 views

6 answers to this question.

0 votes

For now, there is no such way to do a --exclude while doing a docker cp. If you have a Dockerfile, you can achieve this by using .dockerignore.

Below is what i can suggest now as a quick hack/workaround -

mkdir /tmp/to_be_copied
rsync -avzh ./ /tmp/to_be_copied --exclude my_data
docker cp /tmp/to_be_copied 0132381bc8d6:/my_dir

rm -rf /tmp/to_be_copied

You need to just copy your folder structure to a different location by using rsync with the directory my_data excluded.Post this and you will be able to easily use docker cp with the newly created directory, and also do not forget to cleanup at the end so that it do not cause any issue.

answered Apr 3, 2018 by shubham
• 6,890 points
0 votes

Follow these steps:

Step 1- make a file called temp in the temp directory

Step 2- copy all the files to temp, except the one you don’t need.

Step 3- copy all these files from temp to the location you want to copy.

Step 4- delete the folder temp.

answered Aug 2, 2018 by lina
• 8,110 points
0 votes

Create a file .dockerignore in your docker build context directory with the following line in  it:

**/node_modules
answered Dec 10, 2018 by Kunal
0 votes

You can use the .dockerignore file.

The CLI interprets the .dockerignore file as a newline-separated list of patterns similar to the file globs of Unix shells. For the purposes of matching, the root of the context is considered to be both the working and the root directory. For example, the patterns /foo/bar and foo/bar both exclude a file or directory named bar in the foo subdirectory of PATH or in the root of the git repository located at URL. Neither excludes anything else.

answered Dec 10, 2018 by Lisha
0 votes

Here is an example .dockerignore file:

# comment
*/temp*
*/*/temp*
temp?
answered Dec 10, 2018 by Arpit
0 votes
One of the way could be copy and prune. Copy everything and delete whatever is not needed.
answered Dec 10, 2018 by Prateek

Related Questions In Docker

+1 vote
4 answers

COPY is not working in Docker

I had the exact same issue. I ...READ MORE

answered May 6 in Docker by Emilia
2,037 views
0 votes
1 answer

Different file owner inside Docker container and in host machine Ask

Filesystems, at least in Unix- and Linux-like ...READ MORE

answered Jun 25, 2018 in Docker by Damon Salvatore
• 5,510 points
81 views
0 votes
1 answer

Different file owner inside Docker container and in host machine

Here is what you can try. Since ...READ MORE

answered Jun 27, 2018 in Docker by Atul
• 10,240 points
250 views
0 votes
1 answer
0 votes
1 answer
0 votes
1 answer

Deploy Docker Containers from Docker Cloud

To solve this problem, I followed advice ...READ MORE

answered Sep 3, 2018 in AWS by Priyaj
• 56,920 points
224 views
0 votes
1 answer

Enter in a Docker container already running with a new TTY?

Here is what you can try. For docker ...READ MORE

answered Oct 26, 2018 in Docker by shubham
• 6,890 points
178 views
0 votes
1 answer

How do I scale in Docker Swarm Mode W/Terraform Digital Ocean Load Balancing

The solution you could build for Digital ...READ MORE

answered Jun 19, 2018 in Docker by shubham
• 6,890 points
236 views