# Docker打包运行中的容器为镜像并Push到UHub

> 作者/来源: UCloud 运营管理员
> 发布时间: 2022-10-19T03:05:00.000Z
> 分类: AI专区
> 标签: AI, Docker
> 原文链接: http://117.50.162.249:3000/yun/articles/2286

---

# Docker打包运行中的容器为镜像并Push到UHub

> 来源: https://www.ucloud.cn/yun/128156.html
> 作者: 白马啸西风
> 发布日期: 发布于2022-10-19 11:05

## 一、现网环境

（1）查看运行中的cloudreve容器

```
[root@10-60-84-125 ~]# docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED       STATUS       PORTS                                       NAMES
c33783b5a728   xavierniu/cloudreve   "./cloudreve-main -c…"   4 weeks ago   Up 4 weeks   0.0.0.0:5212->5212/tcp, :::5212->5212/tcp   cloudreve
```

（2）环境变更说明

cloudreve自建云盘提供非常丝滑的Web管理页面，在做迁移之前，我通过Web页面自定义了很多配置，并且上传了大量视频和文件数据。前期迁移的时候，没有打包运行中的容器环境，直接运行了新容器，然后把数据目录还原，这时Web登录发现cloudreve恢复了默认配置，并且无法读取还原的数据文件。

（3）数据文件目录

```
[root@10-60-84-125 ~]# ll /data/cloudreve
total 0
drwxr-xr-x 2 root root  6 Oct 14 11:06 avatar
drwxr-xr-x 2 root root 22 Oct 14 11:06 config
drwxr-xr-x 2 root root  6 Oct 14 11:06 db
drwxr-xr-x 3 root root 15 Oct 14 11:46 uploads
```

## 二、业务迁移

### 2.1 备份cloudreve数据

（1）打包数据目录文件

```
[root@10-60-84-125 ~]# cd /data/
[root@10-60-84-125 data]# tar zcvf cloudreve.tar.gz cloudreve/
```

（2）打包容器并上传至UHub

```
语法：docker commit -m=“提交的描述信息” -a=“作者” 容器id 要创建的目标镜像名:[标签名]
```

```
[root@10-60-84-125 ~]# docker commit -m="cloudreve" -a="star.gao" c33783b5a728 uhub.service.ucloud.cn/starcto/cloudreve:v1
[root@10-60-84-125 ~]# docker push uhub.service.ucloud.cn/starcto/cloudreve:v1
```

```
Docker commit参数解读：◆ -m 提交时的说明文字◆ -c  使用Dockerfile指令来创建镜像◆ -a  提交的镜像作者；◆ -p  在commit时，将容器暂停。
```

推荐文章：**UCloud UHub容器镜像仓库使用教程**

### 2.2 数据文件备份与还原

（1）将打包好的数据文件传输到新业务主机

```
[root@10-60-84-125 data]# scp cloudreve.tar.gz root@106.75.226.111:/data/cloudreve.tar.gz
```

（2）新业务主机解压与还原数据文件至对应目录

```
[root@blogs-v2 ~]# cd /data/
[root@blogs-v2 data]# tar zxvf cloudreve.tar.gz
```

### 2.3 新业务主机重新部署业务

（1）从UHub下载镜像

```
[root@blogs-v2 ~]#  docker pull uhub.service.ucloud.cn/starcto/cloudreve:v1
```

（2）运行cloudreve容器

```
[root@blogs-v2 ~]#  docker run -d --name cloudreve -e PUID=1000 -e PGID=1000 -e TZ="Asia/Shanghai" -p 5212:5212 --restart=unless-stopped \
-v /data/cloudreve/uploads:/cloudreve/uploads \
-v /data/cloudreve/config:/cloudreve/config \
-v /data/cloudreve/db:/cloudreve/db \
-v /data/cloudreve/avatar:/cloudreve/avatar uhub.service.ucloud.cn/starcto/cloudreve:v1
```

### 2.4 访问验证

修改完DNS解析后，进行访问验证，发现数据和配置都和之前完全一样，恢复如初！！！自此对cloudreve的数据迁移完美结束！！！

![image.png](https://ucloud-blog.cn-bj.ufileos.com/articles/128156/images/128156_000.png)