summaryrefslogtreecommitdiff
path: root/pkg
diff options
context:
space:
mode:
authorAdrian Reber <areber@redhat.com>2019-06-27 06:16:32 +0000
committerAdrian Reber <areber@redhat.com>2019-07-11 14:43:34 +0200
commit217f2e77f86c95babc9697545e8880af38ec2e89 (patch)
tree0c3114b92d6e951fb927a989de95a6984472e762 /pkg
parentd5f1caaf505a87f093b3c715e9c53ee304917ac4 (diff)
downloadpodman-217f2e77f86c95babc9697545e8880af38ec2e89.tar.gz
podman-217f2e77f86c95babc9697545e8880af38ec2e89.tar.bz2
podman-217f2e77f86c95babc9697545e8880af38ec2e89.zip
Include root file-system changes in container migration
One of the last limitations when migrating a container using Podman's 'podman container checkpoint --export=/path/to/archive.tar.gz' was that it was necessary to manually handle changes to the container's root file-system. The recommendation was to mount everything as --tmpfs where the root file-system was changed. This extends the checkpoint export functionality to also include all changes to the root file-system in the checkpoint archive. The checkpoint archive now includes a tarstream of the result from 'podman diff'. This tarstream will be applied to the restored container before restoring the container. With this any container can now be migrated, even it there are changes to the root file-system. There was some discussion before implementing this to base the root file-system migration on 'podman commit', but it seemed wrong to do a 'podman commit' before the migration as that would change the parent layer the restored container is referencing. Probably not really a problem, but it would have meant that a migrated container will always reference another storage top layer than it used to reference during initial creation. Signed-off-by: Adrian Reber <areber@redhat.com>
Diffstat (limited to 'pkg')
-rw-r--r--pkg/adapter/checkpoint_restore.go1
1 files changed, 1 insertions, 0 deletions
diff --git a/pkg/adapter/checkpoint_restore.go b/pkg/adapter/checkpoint_restore.go
index 97ba5ecf7..1514a3414 100644
--- a/pkg/adapter/checkpoint_restore.go
+++ b/pkg/adapter/checkpoint_restore.go
@@ -55,6 +55,7 @@ func crImportCheckpoint(ctx context.Context, runtime *libpod.Runtime, input stri
"checkpoint",
"artifacts",
"ctr.log",
+ "rootfs-diff.tar",
"network.status",
},
}