当前位置:首页 > 服务器类 > Linux > 正文内容

如何备份和还原Docker容器?

Codefans4年前 (2021-11-02)Linux1998

Docker使我们能够自动化构建和部署应用程序的过程。它还允许我们创建一个打包的环境来运行该应用程序,从而使其易于移植且轻巧,同时还可以跟踪版本。所有这些都可以通过Docker容器实现。它有助于使应用程序平台独立。

假设我们的计算机中运行着一个docker容器,我们想要对该容器进行快照或保留该容器的备份,以便在紧急情况下,如果我们要回滚更改或执行具有先前时间戳记的容器,可以借助存储的备份轻松地做到这一点。因此,备份docker容器并还原可能成为项目的重要组成部分。

在本文中,我们将看到如何在某些命令的帮助下备份和还原Docker容器。我们还需要注意的是,如果容器使用单独的数据卷,则本文中用于备份Docker容器的过程将不起作用。要备份使用单独数据卷的Docker容器,我们需要为每个数据卷创建一个单独的备份。


备份Docker容器

首先,为了备份docker容器,我们需要该特定容器的容器ID。我们将使用ps命令获取所有正在运行的容器的容器ID,并复制需要备份的容器ID。


请查看以下命令。

sudo docker ps -a

之后,复制要为其创建备份的Docker容器的容器ID。要创建Docker容器的快照,我们使用docker commit命令。Docker commit命令的格式为:

sudo docker commit -p <CONTAINER_ID> <BACKUP_NAME>

示例

sudo docker commit -p 5c2f44fbb535 backup-ubuntu

要将映像另存为本地计算机中的tar文件,可以使用此命令。
sudo docker save -o /你想放置的目录/backup−ubuntu.tar backup−ubuntu


恢复Docker容器

创建Docker容器的备份后,如果要还原容器以使用它,可以按照以下方法进行操作。


如果您已将tar文件保存在主机中,则只需使用docker load命令将其还原即可。请使用以下命令进行操作。
sudo docker load -i /所在目录/backup-ubuntu.tar

要确认映像是否已成功还原,可以使用以下命令列出所有映像。
sudo docker images


在以上文章中,我们已经了解了如何备份和还原Docker容器。如果要将要在主机上运行的docker容器迁移到另一台计算机上,可以使用这两个过程(备份和还原)的组合来进行迁移。如果创建了映像的备份并将其推送到docker注册表中,则只需登录目标计算机并提取备份的映像即可。如果您已经创建了用于备份容器的tar文件,则可以将tar文件复制并粘贴到目标计算机上,并使用docker load命令加载映像,然后运行docker run命令来执行容器。


扫描二维码推送至手机访问。

版权声明:本文由图慧网发布,如需转载请注明出处。

本文链接:http://www.tuh8.com/?id=23

分享给朋友:

“如何备份和还原Docker容器?” 的相关文章

docker中安装宝塔面板

docker中安装宝塔面板

我的电脑是win10,安装的virtualbox其上装的ubutun14,ubutun也安装了docker,今天我补充一个完整的操作流程。怎么在docker中安装宝塔面板?先打个岔,这些命令总是记不住,所以记录在本文中,以便将来查询:列出所有的容器 IDdocker ps&nbs...

Linux宝塔怎么设置开机自启,使用docker安装宝塔,并解决宝塔服务在docker下开机自启动问题

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。使用docker安装宝塔主要有以下几点好处:环境隔离,一个主机可以部署多套服务...

宝塔linux面板命令大全

安装宝塔 Centos安装脚本 yum install -y wget && wget -O install.sh http://download.bt.cn/install/insta...

Centos7清理/tmp文件夹

 Centos 6以及6以下的系统使用watchtmp + cron来实现定时清理临时文件的效果,这点在Centos 7发生了变化。一.  系统自动清理 在Centos 7下,系统使用systemd管理易变与临时文件,/tmp目录的清理规则主要取决于/usr/lib/t...

Docker容器里的centos、unbuntu无法使用 systemctl 命令的解决方案

据说在 Linux Docker中无法使用 systemd(systemctl) 相关命令的原因是 1号进程不是 init ,而是其他例如 /bin/bash ,所以导致缺少相关文件无法运行。(System has not been booted with systemd as init syste...