docker容器跨服务器的迁移方式export和save

前沿:

这两天把报警平台放在了docker里面跑了,但是宿主机本身性能就不好,所以导致mongodb到挂了好几次了。这次搞了一台牛逼的服务器,虽说是opentstack里面的主机,但是iops 很不错。

感谢向军同学的帮助,不然就升级uek内核就能搞死我。

你的程序放在docker里面迁移起来很是方便,像是以前的话,需要重新部署环境和静态文件。 放在docker里面的话,只是需要export备份封装后,scp、rsync迁移到别的服务器就可以了。

我这边的redis和mongodb分在不同的容器里面的。 废话不多说,开始迁移。。。

查找正在运行的容器id ~

原文: http://rfyiamcool.blog.51cto.com/1030776/1540414

[email protected]:~# docker ps -a

CONTAINER ID        IMAGE                           COMMAND             CREATED             STATUS              PORTS                   NAMES
459e57c9a5d9        rastasheep/ubuntu-sshd:latest   /bin/bash           About an hour ago   Up 45 minutes       22/tcp                  compassionate_ptolemy   
70c74ebbfac4        rastasheep/ubuntu-sshd:14.04    /usr/sbin/sshd -D   About an hour ago   Up About an hour    0.0.0.0:49157->22/tcp   s                       
3ebbc244c486        rastasheep/ubuntu-sshd:latest   /usr/sbin/sshd -D   18 hours ago        Up About an hour    22/tcp                  redis_t2                
ed7887b93aa4        rastasheep/ubuntu-sshd:latest   /usr/sbin/sshd -D   19 hours ago        Up About an hour    0.0.0.0:49153->22/tcp   redis_test

[email protected]:~#

[email protected]:~# docker export 70c74ebbfac4 >ubuntu_sshd.tar

[email protected]:~#

[email protected]:~#

[email protected]:~# du -sh ubuntu_sshd.tar

353M	ubuntu_sshd.tar

原文: http://rfyiamcool.blog.51cto.com/1030776/1540414

然后把这个ubuntu_sshd.tar  传到别的服务器上。

[email protected]:~# cat ubuntu_sshd.tar | sudo docker import - niubi:latest
8f2baf1b1cf479e366524007faad6d2e2671fc693716043a4812556bc8ac9204
[email protected]:~#

本来只是想把程序、mongodb、redis迁移过去。 既然迁移,干脆把所有的images迁移到新的节点上来。

docer export 对应导入的命令是cat xxx | docker import - name 。我这里用的是niubi:latest ......

cat ubuntu_sshd.tar | sudo docker import - niubi:latest

上面的方式是用docker export。 export是当前的状态,docker save 是针对镜像images。

主要的区别是 save是可以回滚以前的配置。 export 只是当前的。

我们通过 docker images --tree 看到他的历史记录。Docker的文件系统AUFS,一种“增量文件系统”,用户所做修改以增量的方式保存,所以才能看到这些历史的增量。

咱们用save 看看备份效果。 是1.1G  ,这里是包含那些记录的。刚才咱们用export测试的时候,会发现文件只有300M左右。

[email protected]:~# docker save rastasheep/ubuntu-sshd >ubuntu_sshd.tar

[email protected]:~# 
[email protected]:~# 
[email protected]:~# du -sh ubuntu_sshd.tar 
1.1G	ubuntu_sshd.tar
[email protected]:~#

我估计如果有分布式文件系统 ,比如mfs,nfs。可以更好的试试用docker的数据卷来做本地文件夹和容器内的关联。 这样的话,备份更加自定义了。 毕竟环境这东西不会变,变的只是data数据,然后文件目录又在分布式文件里面,可以更好做迁移。只要那边启动一个环境,目录一关联就可以了。

原文: http://rfyiamcool.blog.51cto.com/1030776/1540414

sudo docker run --volumes-from dbdata -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata
http://rfyiamcool.blog.51cto.com/1030776/1540414

备份迁移的方式自己选,推荐用export,毕竟save太大了,对于历史也没啥用处 !

对于数据安全关注更深的话,可以用docker volumes这样的数据映射。

docker容器跨服务器的迁移方式export和save

时间: 2024-11-06 08:29:54

docker容器跨服务器的迁移方式export和save的相关文章

docker容器跨服务器的迁移方式export和save(转)

前沿: 这两天把报警平台放在了docker里面跑了,但是宿主机本身性能就不好,所以导致mongodb到挂了好几次了.这次搞了一台牛逼的服务器,虽说是opentstack里面的主机,但是iops 很不错. 感谢向军同学的帮助,不然就升级uek内核就能搞死我. 你的程序放在docker里面迁移起来很是方便,像是以前的话,需要重新部署环境和静态文件. 放在docker里面的话,只是需要export备份封装后,scp.rsync迁移到别的服务器就可以了. 我这边的redis和mongodb分在不同的容器

docker容器跨服务器的迁移

docker的备份方式有export和save两种. export是当前的状态,针对的是容器,docker save 是针对镜像images. export 找出要备份容器的ID [[email protected] ~]$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS NAMES 037b847bf093 centos "/bin/bash" 3 minutes ago Exited (0) 2 minute naugh

docker容器跨服务器的迁移的方法

docker的备份方式有export和save两种. export是当前的状态,针对的是容器,docker save 是针对镜像images. export 找出要备份容器的ID ? 1 2 3 [[email protected] ~]$ docker ps -a CONTAINER ID    IMAGE        COMMAND       CREATED       STATUS          NAMES 037b847bf093    centos       "/bin/ba

Docker容器跨主机多网段通信解决方案

实现Docker的跨主机网络通信的方案有很多,比如在之前博文中写到的通过部署consul服务实现Docker容器跨主机通信 ,但是consul服务并不能实现多个网段跨主机进行通信,在这种情况之下,MacVlan的概念就应用而生了. Macvlan工作原理: Macvlan是Linux内核支持的网络接口.要求的Linux内部版本是v3.9–3.19和4.0+: 通过为物理网卡创建Macvlan子接口,允许一块物理网卡拥有多个独立的MAC地址和IP地址.虚拟出来的子接口将直接暴露在相邻物理网络中.从

Docker容器跨主机通信之:直接路由方式

概述 就目前Docker自身默认的网络来说,单台主机上的不同Docker容器可以借助docker0网桥直接通信,这没毛病,而不同主机上的Docker容器之间只能通过在主机上用映射端口的方法来进行通信,有时这种方式会很不方便,甚至达不到我们的要求,因此位于不同物理机上的Docker容器之间直接使用本身的IP地址进行通信很有必要.再者说,如果将Docker容器起在不同的物理主机上,我们不可避免的会遭遇到Docker容器的跨主机通信问题.本文就来尝试一下. 方案原理分析 由于使用容器的IP进行路由,就

OpenvSwitch实现Docker容器跨宿主机互联

1. OpenvSwitch简介 Open vSwitch(下面简称为 OVS)是由 Nicira Networks 主导的,运行在虚拟化平台(例如 KVM,Xen)上的虚拟交换机.在虚拟化平台上,OVS可以为动态变化的端点提供 2 层交换功能,很好的控制虚拟网络中的访问策略.网络隔离.流量监控等等.主要实现代码为可移植的C代码. 它的目的是让大规模网络自动化可以通过编程扩展,同时仍然支持标准的管理接口和协议(例如NetFlow,sFlow,SPAN,RSPAN,CLI,LACP,802.1ag

Docker容器进入的4种方式

原文地址:http://www.cnblogs.com/xhyan/p/6593075.html 在使用Docker创建了容器之后,大家比较关心的就是如何进入该容器了,其实进入Docker容器有好几多种方式,这里我们就讲一下常用的几种进入Docker容器的方法. 进入Docker容器比较常见的几种做法如下: 使用docker attach 使用SSH 使用nsenter 使用exec 一.使用docker attach进入Docker容器 Docker提供了attach命令来进入Docker容器

Docker容器跨主机通信之:OVS+GRE

一.概述 由于docker自身还未支持跨主机容器通信,需要借助docker网络开源解决方案 OVS OpenVSwich即开放式虚拟交换机实现,简称OVS,OVS在云计算领域应用广泛,值得我们去学习使用. OpenVSwich OpenVSwich是一种开源软件,通过软件的方式实现二层交换机功能,专门管理多租赁云计算网络环境,提供虚拟网络中的访问策略.网络隔离.流量监控等. 既然是虚拟交换机,自然与传统的物理交换机有着相同的特性,操作中可以按照理解物理交换机的方式去操作,有助于对虚拟交换机的认识

[docker]容器互联的两种方式

声明: 本博客欢迎转发,但请保留原作者信息! 博客地址:http://blog.csdn.net/halcyonbaby 内容系本人学习.研究和总结,如有雷同,实属荣幸! link方式 通过link方式创建容器,然后我们可以使用被link容器的别名进行访问.从而解除应用对IP的依赖.不幸的是,link方式只能解决单机容器间的互联.多机情况下,容器的互联需要其他的方式. [[email protected] ~]# docker run -i -t mysql:latest /bin/bash [