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

如何备份和还原Docker容器?

Codefans4年前 (2021-11-02)Linux1888

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

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

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

备份Docker容器

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

请查看以下命令。

Bash
sudo docker ps -a

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

Bash
sudo docker commit -p <CONTAINER_ID> <BACKUP_NAME>

示例

Bash
sudo docker commit -p 5c2f44fbb535 backup-ubuntu

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

恢复Docker容器

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

Bash
如果您已将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容器?” 的相关文章

Ubuntu开机自动挂载硬盘ntfs分区

sudo mkdir /media/Esudo chmod -R 777 /media/E获取要自动挂载的分区的UUID和分区类型TYPEsudo blkid /dev/sda3: UUID=”000F70A100099B09″ TYPE=”ntfs” 试一下,看看能否挂载到 /...

docker不能正常使用cron任务

基于centos7的docker不能正常使用cron任务问题修改docker centos7镜像对应的容器的/etc/pam.d/crond文件把required 修改成sufficient,如下:account    sufficient &nbs...

Ubuntu搜狗输入法安装指南

Ubuntu搜狗输入法安装指南

Ubuntu搜狗输入法安装指南搜狗输入法已支持Ubuntu1604、1804、1910、2004、2010各系统安装步骤可能略有不同,以Ubuntu2004为例。1、添加中文语言支持打开 系统设置——区域和语言——管理已安装的语言——在“语言”tab下——点击“添加或删除语言”弹出“已安装语言”窗口...

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...