Is it possible to backup a running Docker container? Is the export
command suitable for doing that?
相关问题
- Docker task in Azure devops won't accept "$(pw
- Is shmid returned by shmget() unique across proces
- how to get running process information in java?
- Unable to run mariadb when mount volume
- Unspecified error (0x80004005) while running a Doc
Posted by one friend in comments
Hi Slava, sorry that your question was closed. For the record, Slava is talking about docker.io, a runtime for linux containers. Yes,
docker export
is a suitable approach. It will generate a tarball of your entire container filesystem state, and dump it on stdout. Sodocker export $CONTAINER_ID > $CONTAINER_ID-backup.tar
will yield a usable tarball. You can re-import the tarball with
docker import - slava/$CONTAINER_ID-backup < $CONTAINER_ID-backup.tar
Note the original metadata (eg id of the original image) will be lost. This should be fixed in future versions of docker. – Solomon Hykes Apr 2 '13 at 6:35
Adding here so one can find from summary that question was answered. Thanks Solomon!
Using the
docker commit
is my preferred way to back up a container (started or stopped). Creates an image that you can name:you can also using save and load.. here's the sample
sudo docker images
sudo docker save google_star/_version_1.10 > my_docker-backup.tgz
restore it using (
sudo docker load < my_docker-backup.tgz
)check your images using
sudo docker images
in your new docker machineexport
has some limitations: it won't export the data volume.Here's data volume means:
VOLUME
defined in the image's Dockerfile.-v /webapp
More about data: https://docs.docker.com/userguide/dockervolumes/
The way to handle this situation is start a new container with '--volumes-from' parameter to hook on that container, so you can visit the data volume.
Examples:
docker run -it --volumes-from target_container ubuntu bash
docker run -it --volumes-from some_postgres -v /host/path:/container/path --rm ubuntu bash -c "tar -cvf /container/path/postgres-backup.tar /var/lib/postgresql/data"