docker打包容器后转移到其他机器执行

本文详细介绍了如何将运行中的容器数据迁移到新的主机。首先通过`docker commit`提交容器为新镜像,然后使用`docker save`保存镜像为tar文件,接着在目标主机上用`docker load`加载该文件,最后通过`docker run`启动新容器,成功实现数据迁移。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

容器备份迁移案例

运行一段时间后的容器,其中包含了新的数据,如果想把这些内容数据一并迁移到新的主机上,可以按照以下步骤进行:

  • 提交容器生成新的镜像

    [root@localhost ~]# docker ps    //查看正在运行的容器web
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
    9a17f7c9f00a        nginx               "nginx -g 'daemon of…"   19 hours ago        Up 19 hours         80/tcp              web
    
    [root@localhost ~]# docker commit -p web webdata:v1    //-p暂停web容器并提交为新镜像webdata:v1
    sha256:b25ea02c5f1f4efe4c35d6503a277d968d5dfdf0cfd69092b3e99202dd687723
    
    [root@localhost ~]# docker images      //查看提交的新镜像webdata
    REPOSITORY                      TAG                      IMAGE ID            CREATED             SIZE
    webdata                         v1                       b25ea02c5f1f        3 seconds ago       127MB
    
  • 将镜像保存成一个tar压缩包

    [root@localhost ~]# docker save webdata:v1 > webdata.tar
    
    [root@localhost ~]# ll -h webdata.tar
    -rw-r--r-- 1 root root 125M 5月  13 23:47 webdata.tar
    
  • 在另一台主机上加载镜像的tar压缩包

    [root@localhost ~]# cd test/
    
    [root@localhost test]# ll
    总用量 127572
    -rw-r--r-- 1 root root 130631168 5月  13 23:49 webdata.tar
    
    [root@localhost test]# docker load -i webdata.tar
    d9d778e6751c: Loading layer [==================================================>]  10.24kB/10.24kB
    Loaded image: webdata:v1
    
    [root@localhost test]# docker images
    REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
    webdata                       v1                  b25ea02c5f1f        12 minutes ago      127MB
    

 

  • 加载镜像运行容器

    [root@localhost test]# docker run -itd --name web webdata:v1
    51d9ed10961b9620ea6456f5bd75dbd43168b73c7bd184dcccdd25fcf956d9e5
    
    [root@localhost test]# docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
    51d9ed10961b        webdata:v1          "nginx -g 'daemon of…"   35 seconds ago      Up 33 seconds       80/tcp              web
    
    [root@localhost test]# docker exec -it web ls /mnt/
    test.txt
    

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值