服务器没有外网,且连接不稳定,如何传输大文件

服务器没有外网

情况介绍:

现在通过todesk连接到一台电脑,这台电脑再通过ssh连接到要部署的服务器上,服务器是没有外网的,也没有docker-compose等软件,site、sql等镜像以及代码。

尝试:

  1. 下载离线docker-compose安装文件,再使用scp命令传输到服务器

    1. 安装docker,此时服务器有docker就没有尝试。

    2. 安装docker-compose

      1.下载docker-compose
      https://github.com/docker/compose/releases/download/v2.1.1/docker-compose-linux-x86_64
      2.将文件传输到服务器/usr/local/bin/目录下,此处要将文件名字重命名为docker-compose
      3.对文件增加可执行权限
      chmod +x /usr/local/bin/docker-compose
      4.查看docker-compose版本
      docker-compose -v
      
  2. 再将site镜像和sql镜像传输过去,因为没有外网,所以需要先将镜像打包成压缩包传输

docker save -o 要打镜像包的名称 镜像

例如

docker save -o docker_site.tar.gz t40site:latest
此处镜像名称也可以用id号替代,不过解压时会没有名称,需要再用tag命令重新打标签
  1. 此时site和sql镜像压缩包已经制作好,遇到新的问题,这台电脑和服务器之间网络连接很不稳定,经常断包,因为site的镜像有一个多G的大小。在使用scp多次尝试失败后,查到两种方法。

    1. 使用rsync命令,支持断点传输

      rsync -av -e 'ssh -p 端口号' 文件名  用户名@地址:路径
      

      尝试失败,因为服务器端口没有开放,不过应该可以在服务器上设置一下开放某个端口以便传输

    2. 尝试将大压缩包文件拆分成若干个小文件,分别传输,最后再合并

      split -d -n 10 docker_site.tar.gz
      -d 表示划分文件使用数字后缀 -n 10表示将文件划分为10个小文件
      生成文件为x00 x01 ...   x09
      

      再将生成10个文件逐个传输到服务器,然后合并大文件

      cat x* > docker_site.tar.gz
      意思是打开前缀是x的文件,再用>写入大文件
      

      分别计算两台电脑上该压缩包的md5值,用来判断文件是否损坏

      md5sum docker_site.tar.gz
      
  2. 将压缩包解压为镜像

    docker load -i docker_site.tar.gz
    

    此时查看镜像,可能出现name和tag都为none的情况,没关系,这是因为在打包成压缩包时使用的是id号,如果使用name:tag则不会。此时可以用tag命令再重新打个标签,后面记得在docker-compose.yml文件中修改。

  3. 此时,docker、docker-compose、镜像文件等基础都有了,再把代码传过去,就可以部署了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值