概述

 今天,我们将学习如何快速地对docker容器进行快捷备份、恢复和迁移。Docker是一个开源平台,用于自动化部署应用,
以通过快捷的途径在称之为容器的轻量级软件层下打包、发布和运行这些应用。它使得应用平台独立,因为它扮演了Linux
上一个额外的操作系统级虚拟化的自动化抽象层。它通过其组件cgroups和命名空间利用Linux内核的资源分离特性,
达到避免虚拟机开销的目的。它使得用于部署和扩展web应用、数据库和后端服务的大规模构建组件无需依赖于特定的
堆栈或供应者。

所谓的容器,就是那些创建自Docker镜像的软件层,它包含了独立的Linux文件系统和开箱即用的应用程序。如果我们有
一个在机器中运行着的 Docker容器,并且想要备份这些容器以便今后使用,或者想要迁移这些容器,那么,本教程将帮助
你掌握在Linux操作系统中备份、恢复和迁移 Docker容器的方法。

我们怎样才能在Linux中备份、恢复和迁移Docker容器呢?这里为您提供了一些便捷的步骤。

正文

1.  查看容器

#输入命令查看docker中所有容器
#docker ps 查看所有运行中的容器、-a可以列出所有容器包括未运行的
docker ps -a

 2. 备份容器 

#选择我们想要备份的容器,然后去创建该容器的快照。我们可以使用 docker commit #命令来创建快照。
#30b8f18f20b4是对应的CONTAINER ID(容器id)
docker commit -p 30b8f18f20b4 container-backup  

#该命令会生成一个作为Docker镜像的容器快照,我们可以通过运行
#docker images 命令
#来查看Docker镜像,如下
docker images

#正如我们所看见的,上面做的快照已经作为Docker镜像保存了。现在,为了备份该
#快照,我们有两个选择,一个是我们可以登录进Docker注册中心,并推送该镜像;
#另一个是我们可以将Docker镜像打包成tar包备份,以供今后使用。
#本次我们将其作为tar包备份。
docker save -o ~/container-backup.tar container-backup

#要验证tar包是否已经生成,我们只需要在保存tar包的目录中运行 ls 命令即可。
#一般默认会在root文件夹下
ls

3. 还原容器
#先停止本来的容器
docker stop gitlab

#查看容器
#如果只使用docker ps的话就看不到这个容器,因为这个容器已经停止运行了,所以
#需要-a才可以看到
docker ps -a

#删除刚停止的这个容器
#d9f88c88dab6 就是容器的CONTAINER ID(容器id)
docker rm d9f88c88dab6

#如果不放心可以再查看下容器

#使用 docker load 命令,后面加上tar包的备份路径,就可以加载该Docker镜像了。
docker load -i ~/container-backup.tar

#现在,为了确保这些Docker镜像已经加载成功,我们来运行 docker images 命令。
docker images

#启动镜像(一)
#指定端口映射,格式为:主机(宿主)端口:容器端口
docker run -d -p 9443:443 -p 9080:80 -p 2222:22 container-backup

#启动镜像(二)
#与备份镜像启动命令一致、这样可以保留镜像中的数据
docker run -d --hostname 192.168.xx.xxx --restart always -p 9443:443 -p 9080:80 -p 2222:22 --name gitlab -v `pwd`/config:/etc/gitlab  -v `pwd`/logs:/var/log/gitlab -v `pwd`/data:/var/opt/gitlab container-backup

本次的学习到这里就结束了,会根据实际使用更新文章。

如果对您有帮助 请点个关注,万分感谢

(QQ招聘群  710566091
                                 微信招聘群 请加图图微信)

 

Docker备份Gitlab容器以及还原数据的更多相关文章

  1. Docker - 解决 gitlab 容器上的项目进行 clone 时,IP 地址显示一串数字而不是正常 IP 地址的问题

    问题背景 通过 gitlab 容器创建了一个项目,想 clone 到本地,结果发现项目的 IP 地址是一串数字 问题排查 明明创建项目的时候,IP 地址还是正常的鸭! 再看看项目的 settings ...

  2. Docker 备份、恢复、迁移数据卷

    可以利用数据卷对其中的数据进行进行备份.恢复和迁移. 备份 首先使用 --volumes-from 标记来创建一个加载 dbdata 容器卷的容器,并从本地主机挂载当前到容器的 /backup 目录. ...

  3. gitlab Docker容器创建命令以及从容器中备份gitlab仓库示例

    Gitlab容器启动命令: docker run -d --name gitlab --publish : --publish : --hostname gitlab-server --volume ...

  4. 【Docker】利用数据卷容器来备份、恢复、迁移数据卷

    利用数据卷容器来备份.恢复.迁移数据卷 可以利用数据卷对其中的数据进行进行备份.恢复和迁移. 备份 首先使用 --volumes-from 标记来创建一个加载 dbdata 容器卷的容器,并从主机挂载 ...

  5. [docker] 管理docker容器中的数据

    之前我们介绍了Docker的基本概念(前面的没翻译...),了解了如何使用Docker镜像进行工作,并且学习了网 络和容器之间的链接.这一节我们将讨论如何管理容器中及容器之间的数据. 我们将查看下面两 ...

  6. docker备份mongodb数据,导入导出

    场景:服务器要升级,之前在linux部署的mongodb没有用docker,升级后,mongodb要用docker部署,并将原有的mongodb数据导入到docker部署的mongodb中. 1.在l ...

  7. 如何在Docker容器之间拷贝数据

    [编者的话]在容器之间拷贝数据是Docker一个重要而且基本的功能.拷贝数据到其他容器是一个经常使用到的场景,如当服务器遇到不可预见的“灾难”(注:断电,宕机)时,起到备份数据的作用.本文作者详细介绍 ...

  8. Docker深入浅出系列 | 容器数据持久化

    Docker深入浅出系列 | 容器数据持久化 Docker已经上市很多年,不是什么新鲜事物了,很多企业或者开发同学以前也不多不少有所接触,但是有实操经验的人不多,本系列教程主要偏重实战,尽量讲干货,会 ...

  9. Docker 实战(3)- 搭建 Gitlab 容器并上传本地项目代码

    如果你还想从头学起 Docker,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1870863.html 搭建 Gitlab 容器 搜索 ...

随机推荐

  1. LeetCode 刷题 App / LeetCode 题解 App

    LeetCode 刷题 APP / LeetCode 题解 App 全端支持 http://leetcode-app.xgqfrms.xyz/ http://leetcode-desktop.xgqf ...

  2. whiteboard & coding interview practice

    whiteboard & coding interview practice 白板 & 面试 & 编码练习 Algorithm https://www.freecodecamp ...

  3. js & bitwise-operators

    js & bitwise-operators 不用加减乘除运算符, 求整数的7倍 "use strict"; /** * * @author xgqfrms * @lice ...

  4. JS Calendar API

    JS Calendar API js 如何获取当天是周几(一周的第几天) const date = new Date(); // Mon Mar 23 2020 15:15:36 GMT+0800 ( ...

  5. svg insert shape string bug

    svg insert shape string bug not support custom areaProps attributes ??? const svg = document.querySe ...

  6. uniapp scroll-view

    https://uniapp.dcloud.io/component/scroll-view <view class="flex1"> <scroll-view ...

  7. NGK数字钱包的特点是什么?NGK钱包的优点和缺点是什么?

    说起区块链数字资产,那就离不开谈到数字钱包.数字钱包不仅有资产管理的功能,还可以进行资产理财.资产交易,甚至能为公链DAPP导流. 对于NGK公链而言,其数字钱包已然成为了解NGK公链的基础条件.NG ...

  8. 「NGK每日快讯」12.31日NGK第58期官方快讯!

  9. C++算法模板集合

    我的常用刷题网站:http://218.5.5.242:9018/JudgeOnline/ https://www.luogu.com.cn/ 排序 选择排序(selection sort) 1 vo ...

  10. Unity 定点投射固定高度抛物线

    假设同一平面中有AB两点,A点向B点水平射击,很容易想象子弹会沿由A指向B的向量方向前进,经过时间t后到达B点,若此时A点不再水平射击,改为以抛物线的方式向B点投射,同样需要在时间t后击中B点,那么如 ...