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:
- full path to file
- where you want to extract that file
docker cp $ContainerId:$fullPathToFile $outputDirectory
In our case scenario, the operation will be:
docker cp f13dafbb392c:/var/tmp/CMCalidad-with-data2.bak .