Indeed, docker cp
does not support glob patterns, and as an aside, container paths are absolute:
The docker cp
command assumes container paths are relative to the container’s /
(root) directory. This means supplying the initial forward slash is optional […]
Local machine paths can be an absolute or relative value. The command interprets a local machine’s relative paths as relative to the current working directory where docker cp
is run.
However, one may devise a workaround, relying on docker exec
, and a manually crafted shell command relying on the tar
command on both sides (assuming it is available in the image):
sudo docker exec env1_1 sh -c 'cd /path && tar cf - *.txt' | tar xvf -
or if need be:
sudo docker exec env1_1 sh -c 'cd /path && tar cf - *.txt' | ( cd /dest/path && tar xvf - )
Here, the special filename -
denotes STDOUT (or respectively STDIN).
Usual disclaimer: the final tar
command will overwrite without further notice the selected files in the current folder (or /dest/path
in the second example).