因为无法在国内云服务器部署supabase,开发了能一键将多个本地镜像上传到云服务器的工具docker-upload
Github地址:rtugeek/docker-upload
📖简介
总所周知,由于一些无可奉告的原因,在云服务器docker pull拉取镜像都会显示connect: connection timed out超时报错。
当前的几种解决方法:
- 云服务器搭建科学上网(生产环境你搭个试试)
- 使用一些没经过审查的镜像源(可能随时用不了,还有可能装到不安全的镜像)
- 自己搭建镜像源(麻烦)
- 用有科学上网的本地电脑拉取镜像后再上传到云服务器
DockerUpload 使用的是第4种方法,只需要一行命令,帮你自动执行命令,完成多个镜像打包、传输和加载。
🔨使用指南
配置SSH
在~/.ssh/config中添加云服务器的配置信息,例如:
Host myserver
HostName your.server.ip
User yourusername
Port 22
IdentityFile ~/.ssh/id_rsa
运行docker-upload
npx docker-upload
- 根据提示选择要传输的镜像(支持多选)
- 根据提示选择云服务器(支持搜索)
- 输入ssh密码
🔣原理
docker-upload 只是帮你自动执行了下面命令而已,没有什么技术含量:
# 1. 打包docker image
docker save xxx
# 2. 传输到云服务器
scp xxx.tar user@server:/tmp/xxx.tar
# 3. 在云服务器加载docker image
ssh user@server 'docker load -i /tmp/xxx.tar'