1podman-container-restore(1) General Commands Manualpodman-container-restore(1)
2
3
4
6 podman-container-restore - Restores one or more containers from a
7 checkpoint
8
9
11 podman container restore [options] name [...]
12
13
15 podman container restore restores a container from a container check‐
16 point or checkpoint image. The container IDs, image IDs or names are
17 used as input.
18
19
21 --all, -a
22 Restore all checkpointed containers.
23 The default is false.
24 IMPORTANT: This OPTION does not need a container name or ID as input
25 argument.
26
27
28 --file-locks
29 Restore a container with file locks. This option is required to restore
30 file locks from a checkpoint image. If the checkpoint image does not
31 contain file locks, this option is ignored. Defaults to not restoring
32 file locks.
33 The default is false.
34
35
36 --ignore-rootfs
37 If a container is restored from a checkpoint tar.gz file it is possible
38 that it also contains all root file-system changes. With --ignore-
39 rootfs it is possible to explicitly disable applying these root file-
40 system changes to the restored container.
41 The default is false.
42 IMPORTANT: This OPTION is only available in combination with --import,
43 -i.
44
45
46 --ignore-static-ip
47 If the container was started with --ip the restored container also
48 tries to use that IP address and restore fails if that IP address is
49 already in use. This can happen, if a container is restored multiple
50 times from an exported checkpoint with --name, -n.
51
52
53 Using --ignore-static-ip tells Podman to ignore the IP address if it
54 was configured with --ip during container creation.
55
56
57 The default is false.
58
59
60 --ignore-static-mac
61 If the container was started with --mac-address the restored container
62 also tries to use that MAC address and restore fails if that MAC ad‐
63 dress is already in use. This can happen, if a container is restored
64 multiple times from an exported checkpoint with --name, -n.
65
66
67 Using --ignore-static-mac tells Podman to ignore the MAC address if it
68 was configured with --mac-address during container creation.
69
70
71 The default is false.
72
73
74 --ignore-volumes
75 This option must be used in combination with the --import, -i option.
76 When restoring containers from a checkpoint tar.gz file with this op‐
77 tion, the content of associated volumes will not be restored.
78 The default is false.
79
80
81 --import, -i=file
82 Import a checkpoint tar.gz file, which was exported by Podman. This can
83 be used to import a checkpointed container from another host.
84 IMPORTANT: This OPTION does not need a container name or ID as input
85 argument.
86
87
88 During the import of a checkpoint file Podman will select the same con‐
89 tainer runtime which was used during checkpointing. This is especially
90 important if a specific (non-default) container runtime was specified
91 during container creation. Podman will also abort the restore if the
92 container runtime specified during restore does not much the container
93 runtime used for container creation.
94
95
96 --import-previous=file
97 Import a pre-checkpoint tar.gz file which was exported by Podman. This
98 option must be used with -i or --import. It only works on runc 1.0-rc3
99 or higher. IMPORTANT: This OPTION is not supported on the remote
100 client, including Mac and Windows (excluding WSL2) machines.
101
102
103 --keep, -k
104 Keep all temporary log and statistics files created by CRIU during
105 checkpointing as well as restoring. These files are not deleted if
106 restoring fails for further debugging. If restoring succeeds these
107 files are theoretically not needed, but if these files are needed Pod‐
108 man can keep the files for further analysis. This includes the check‐
109 point directory with all files created during checkpointing. The size
110 required by the checkpoint directory is roughly the same as the amount
111 of memory required by the processes in the checkpointed container.
112 Without the --keep, -k option the checkpoint will be consumed and can‐
113 not be used again.
114 The default is false.
115
116
117 --latest, -l
118 Instead of providing the container ID or name, use the last created
119 container. If other tools than Podman are used to run containers such
120 as CRI-O, the last started container could be from either tool.
121 The default is false.
122 IMPORTANT: This OPTION is not available with the remote Podman client,
123 including Mac and Windows (excluding WSL2) machines. This OPTION does
124 not need a container name or ID as input argument.
125
126
127 --name, -n=name
128 If a container is restored from a checkpoint tar.gz file it is possible
129 to rename it with --name, -n. This way it is possible to restore a con‐
130 tainer from a checkpoint multiple times with different names.
131
132
133 If the --name, -n option is used, Podman will not attempt to assign the
134 same IP address to the container it was using before checkpointing as
135 each IP address can only be used once and the restored container will
136 have another IP address. This also means that --name, -n cannot be used
137 in combination with --tcp-established.
138 IMPORTANT: This OPTION is only available for a checkpoint image or in
139 combination with --import, -i.
140
141
142 --pod=name
143 Restore a container into the pod name. The destination pod for this re‐
144 store has to have the same namespaces shared as the pod this container
145 was checkpointed from (see **podman pod create --share.
146 IMPORTANT: This OPTION is only available for a checkpoint image or in
147 combination with --import, -i.
148
149
150 This option requires at least CRIU 3.16.
151
152
153 --print-stats
154 Print out statistics about restoring the container(s). The output is
155 rendered in a JSON array and contains information about how much time
156 different restore operations required. Many of the restore statistics
157 are created by CRIU and just passed through to Podman. The following
158 information is provided in the JSON array:
159
160
161 • podman_restore_duration: Overall time (in microseconds) needed
162 to restore all checkpoints.
163
164 • runtime_restore_duration: Time (in microseconds) the container
165 runtime needed to restore the checkpoint.
166
167 • forking_time: Time (in microseconds) CRIU needed to create
168 (fork) all processes in the restored container (measured by
169 CRIU).
170
171 • restore_time: Time (in microseconds) CRIU needed to restore
172 all processes in the container (measured by CRIU).
173
174 • pages_restored: Number of memory pages restored (measured by
175 CRIU).
176
177
178
179 The default is false.
180
181
182 --publish, -p=port
183 Replaces the ports that the container publishes, as configured during
184 the initial container start, with a new set of port forwarding rules.
185
186
187 For more details please see podman run --publish.
188
189
190 --tcp-established
191 Restore a container with established TCP connections. If the checkpoint
192 image contains established TCP connections, this option is required
193 during restore. If the checkpoint image does not contain established
194 TCP connections this option is ignored. Defaults to not restoring con‐
195 tainers with established TCP connections.
196 The default is false.
197
198
200 Restores the container "mywebserver".
201
202
203 # podman container restore mywebserver
204
205
206
207 Import a checkpoint file and a pre-checkpoint file.
208
209
210 # podman container restore --import-previous pre-checkpoint.tar.gz --import checkpoint.tar.gz
211
212
213
214 Start the container "mywebserver". Make a checkpoint of the container
215 and export it. Restore the container with other port ranges from the
216 exported file.
217
218
219 $ podman run --rm -p 2345:80 -d webserver
220 # podman container checkpoint -l --export=dump.tar
221 # podman container restore -p 5432:8080 --import=dump.tar
222
223
224
225 Start a container with the name "foobar-1". Create a checkpoint image
226 "foobar-checkpoint". Restore the container from the checkpoint image
227 with a different name.
228
229
230 # podman run --name foobar-1 -d webserver
231 # podman container checkpoint --create-image foobar-checkpoint foobar-1
232 # podman inspect foobar-checkpoint
233 # podman container restore --name foobar-2 foobar-checkpoint
234 # podman container restore --name foobar-3 foobar-checkpoint
235
236
237
239 podman(1), podman-container-checkpoint(1), podman-run(1), podman-pod-
240 create(1), criu(8)
241
242
244 September 2018, Originally compiled by Adrian Reber areber@redhat.com
245 ⟨mailto:areber@redhat.com⟩
246
247
248
249 podman-container-restore(1)