他人亦已歌
发布于
更新于
利用 docker 传输文件
利用 Docker 传输文件
想要给服务器重装系统,所以需要备份文件。将服务器的网站文件保存到本地。服务器本身配置很低,所以直接下载速度很慢。
0. 将要备份的文件压缩为 zip
zip -q -r www.zip /var/www
zip -q -r nginx.zip /etc/nginx
# 解压
unzip -o -d / www.zip
1. 利用 rsync
来同步
同步服务器到本地
rsync -azP [email protected]:~/www.zip ~/rsyncDesk/
走的还是服务器公网的带宽,故而同步速度只有 100 多 kB/s 。太慢了
2. 利用 docker
在腾讯云服务器,将压缩包打包为 docker 镜像
a 在服务器登录腾讯云镜像仓库
sudo docker login --username=10000xxx ccr.ccs.tencentyun.com
b 创建 Dockerfile
FROM alpine
WORKDIR /app
COPY ./www.zip .
c 打包和推送
sudo docker build -t www .
sudo docker tag www ccr.ccs.tencentyun.com/namespace/dockersync:www
sudo docker push ccr.ccs.tencentyun.com/namespace/dockersync:www
d 拉取到本地
sudo docker pull ccr.ccs.tencentyun.com/namespace/dockersync:www
e 从 docker 镜像解压
参照方法
docker create $image # returns container ID
docker cp $container_id:$source_path $destination_path
docker rm $container_id
docker create ccr.ccs.tencentyun.com/namespace/dockersync:www
docker cp 20321b6c9985:/app ./app
docker rm 20321b6c9985
f 制作镜像压缩包
参考:https://support.huaweicloud.com/usermanual-swr/swr_01_0006.html
- 执行如下命令查看镜像。
docker images
查看需要导出的镜像及tag。
- 执行如下命令制作镜像压缩包。
docker save [OPTIONS] IMAGE [IMAGE...]
示例:
docker save nginx:latest > nginx.tar
ls -sh nginx.tar
# 108M nginx.tar
docker save php:5-apache > php.tar.gz
ls -sh php.tar.gz
# 372M php.tar.gz
docker save --output nginx.tar nginx
ls -sh nginx.tar
# 108M nginx.tar
docker save -o nginx-all.tar nginx
docker save -o nginx-latest.tar nginx:latest
构建:
新建 Dockerfile
FROM scratch
COPY ./ ./
打包:
docker build -t test:v2 ./
docker save test:v2 > test-scratch.tar.gz
PS 重装之后,可以再从镜像仓库将打包的文件拉取下来。