[ WSL2  ]

Suppose that you are working from a stateless docker container in your dev environment (no mounted volumes) and you ended with some changes in files that you don´t want to loose.

One easy way to do that is to use the docker cp utility to get the data out of the container.

Search for the container

The first thing to do is to get the id of your container

 enrique  laptop  ~  $  docker ps
CONTAINER ID   IMAGE                            COMMAND                   CREATED       STATUS       PORTS
       NAMES
f13dafbb392c   database_frameworktsqldatabase   "/bin/sh -c \"/tmp/da…"   2 hours ago   Up 2 hours   0.0.0.0:14330->1433/tcp   database_frameworktsqldatabase_1
735742e3ff08   tsqlgenerator:dev                "tail -f /dev/null"       2 hours ago   Up 2 hours
       TsqlGenerator
 enrique  laptop  ~  $ 

In my case, the container i´m working on right now is the f13dafbb392c

Copy the file

In my case, I was working from a stateless docker container and during my unit tests i detected some “data” mistakes that I wanted to fix manually (you know…quick fix :). I then ended with a new backup inside a sateless container…so my next thing is to extract that backup out of my container as soon as possible.

To copy the file, you only need to know:

  • ContainerId
  • full path to file
  • where you want to extract that file
docker cp $ContainerId:$fullPathToFile $outputDirectory

Copy command

In our case scenario, the operation will be:

docker cp f13dafbb392c:/var/tmp/CMCalidad-with-data2.bak .