介绍
在生产环境和测试环境下,使用进行应用程序的容器化部署时,我们经常需要对容器进行备份和恢复操作。备份容器可以保证数据的安全性,而恢复操作可以帮助我们快速恢复出现问题的容器。提供了 和 两种方式。
: 这个命令将一个正在运行或已停止的容器的文件系统打包为一个压缩的 tar 文件,但不保留历史记录和元数据。它不包含容器的运行时状态、进程、环境变量等信息,只包含容器的文件系统快照。使用 创建的 tar 文件可以在其他 环境中通过 命令导入为镜像。导入后的镜像没有与原始容器相同的历史记录和元数据。
: 这个命令将容器的当前状态保存为一个新的镜像,并保留历史记录和元数据。它将容器的文件系统更改、进程状态等保存到新的镜像中。使用 创建的镜像可以直接用作基于此镜像的新容器的基础。镜像中包含容器的文件系统和运行时状态。
两者的主要区别:
(1) 导出的镜像包含容器的完整文件系统和运行时状态,可以直接用作基于此镜像的新容器的基础。
(2) 导出的 tar 文件只包含容器的文件系统快照,不包含容器的运行时状态或元数据。需要使用 将其导入为镜像后才能使用。
因此,如果您需要保留容器的完整状态并将其作为基础创建新容器,可以使用 。如果只需要容器的文件系统快照,并将其在其他 环境中导入为镜像,可以使用 和 组合。
用法
[root@- ~]# –help
Usage: [] [[:TAG]]
a new image from a 's
:
,
:
-a, — (e.g., “John Smith “)
-c, — list Apply to the image
-m, —
-p, –pause Pause ( true)
用法
[root@- ~]# –help
Usage: []
a 's as a tar
:
,
:
-o, — Write to a file, of
用法
[root@- ~]# –help
Usage: [] file|URL|- [[:TAG]]
the from a to a image
:
image ,
:
-c, — list Apply to the image
-m, — Set for image
— Set if is multi-
操作效果
具体操作效果如下:
说明:测试-ssh镜像安装vi后备份和恢复效果。
# 下载pull cenos-ssh
[root@- ~]# pull /-ssh
Using tag:
: from /-ssh
: Pull
: Pull
: Pull
: Pull
: :65c8
: newer image for /-ssh:
.io//-ssh:
# 查看下载的
[root@- ~]# |grep -ssh
/-ssh 4 years ago 228MB
# 启动-ssh容器
[root@- ~]# run -d –name -ssh -p 32768:22 /-ssh
97d9
# 查看容器运行情况
[root@- ~]# ps -a
ID IMAGE PORTS NAMES
/-ssh “/usr/bin/…” 36 ago Up 35 () 0.0.0.0:32768->22/tcp, :::32768->22/tcp -ssh
# 进入-ssh容器,yum安装vi
[root@- ~]# exec -it -ssh /bin/bash
[root@ /]# vi test.log
bash: vi: not found
[root@ /]# yum -y vi
: , ovl,
epel// | 12 kB 00:00:00
* base:
* -sclo-rh:
* -sclo-sclo:
* epel:
* :
* :
base | 3.6 kB 00:00:00
-sclo-rh | 3.0 kB 00:00:00
-sclo-sclo | 3.0 kB 00:00:00
epel | 4.3 kB 00:00:00
| 2.9 kB 00:00:00
ius | 1.3 kB 00:00:00
| 2.9 kB 00:00:00
(1/10): base/7// | 153 kB 00:00:00
(2/10): -sclo-rh// | 3.4 MB 00:00:00
(3/10): -sclo-sclo// | 300 kB 00:00:00
(4/10): /7// | 253 kB 00:00:00
(5/10): epel//group | 399 kB 00:00:00
(6/10): epel// | 1.0 MB 00:00:00
(7/10): /7// | 27 MB 00:00:00
(8/10): epel// | 8.7 MB 00:00:00
(9/10): ius// | 40 kB 00:00:02
(10/10): base/7// | 6.1 MB 00:00:03
ius 159/159
6 due to (use “yum ” to show them)
–> check
—> vim-. 2:7.4.160-5.el7 will be
—> vim-. 2:7.4.629-8.el7_9 will be an
–>
===============================================================================================================================================================================================================
Arch Size
===============================================================================================================================================================================================================
:
vim- 2:7.4.629-8.el7_9 443 k
===============================================================================================================================================================================================================
1
Total size: 443 k
:
Delta RPMs /usr/bin/ not .
vim–7.4.629-8.el7_9..rpm | 443 kB 00:00:00
check
test
test
2:vim–7.4.629-8.el7_9. 1/2
: 2:vim–7.4.160-5.el7. 2/2
: 2:vim–7.4.629-8.el7_9. 1/2
: 2:vim–7.4.160-5.el7. 2/2
:
vim-. 2:7.4.629-8.el7_9
!
[root@ /]# vi
vi: /usr/bin/vi
[root@ /]# vi .log
[root@ /]# cat —ាi.log
This is test vi tools!!!!:
# 停止-ssh容器并备份
# 建议执行前,必须从容器中退出,可以不停止容器。
[root@- ~]# ps -a
ID IMAGE PORTS NAMES
/-ssh “/usr/bin/…” 11 ago Up 11 () 0.0.0.0:32768->22/tcp, :::32768->22/tcp -ssh
[root@- ~]# stop -ssh
-ssh
[root@- ~]# ps -a
ID IMAGE PORTS NAMES
/-ssh “/usr/bin/…” 11 ago (0) 1 ago -ssh
[root@- ~]# -ssh -ssh-vi:1.0
:5598
[root@- ~]# |grep -ssh-vi
-ssh-vi 1.0 52 ago 542MB
# 基于新的-ssh-vi 创建一个容器
[root@- ~]# run -d –name -ssh-vi -ssh-vi:1.0
e5de
[root@- ~]# ps -a
ID IMAGE PORTS NAMES
-ssh-vi:1.0 “/usr/bin/…” 8 ago Up 7 () 22/tcp -ssh-vi
/-ssh “/usr/bin/…” 16 ago (0) 5 ago -ssh
# 进入-ssh-vi容器,检查vi是否可用
[root@- ~]# exec -it -ssh-vi /bin/bash
[root@ /]# vi
vi: /usr/bin/vi
通过以上操作,就可以成功进行 容器的备份和恢复。
说明: 容器的备份和恢复仅仅局限在本机OS内,若是想将备份用于其他OS的,还需 save来完成。
和操作效果
本次操作以-ssh容器来完成和,以及与的区别。操作如下:
# 查看镜像和容器
[root@–02 ~]#
TAG IMAGE ID SIZE
-ssh-vi 1.0 17 ago 542MB
2 years ago 1.24MB
httpd 2 years ago 144MB
/-ssh 4 years ago 228MB
[root@–02 ~]# ps -a
ID IMAGE PORTS NAMES
-ssh-vi:1.0 “/usr/bin/…” 17 ago Up 17 () 22/tcp -ssh-vi
/-ssh “/usr/bin/…” 34 ago Up 2 () 0.0.0.0:32768->22/tcp, :::32768->22/tcp -ssh
# 导出-ssh-vi容器,如下:
[root@–02 ~]# -o “-ssh-vi.tar” -ssh-vi
[root@–02 ~]# ls
-ks.cfg -ssh-vi.tar -setup-ks.cfg
# 导入新镜像
[root@–02 ~]# — ” -ssh-vi:2.0″ -ssh-vi.tar -ssh-vi:2.0
:c669
[root@–02 ~]#
TAG IMAGE ID SIZE
-ssh-vi 2.0 14 ago 472MB
-ssh-vi 1.0 29 ago 542MB
2 years ago 1.24MB
httpd 2 years ago 144MB
/-ssh 4 years ago 228MB
# 测试新镜像-ssh-vi:2.0是否存在vi工具
[root@–02 ~]# run -d -ssh-vi:2.0 bash
a6a8
# 查看容器状态
截止: 和完成。
镜像运行容器常见错误
(1)错误现象
借用刚刚导入镜像-ssh-vi:2.0,如下:
错误现象“: Error from : No .”,如下:
注意:运行导入的镜像的时候必须带,否则启动报如下错误
查看原有镜像启动时的,如下:
———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,永久会员只需109元,全站资源免费下载 点击查看详情
站 长 微 信: nanadh666