Alibaba Cloud Linux 4 镜像备份到自己的 OSS 中,并同时使用该镜像部署
为什么要进行镜像的存储,因为网上的远程镜像经常连接不上,对于服务器来说,需要及时恢复的情况下.下载自己的OSS镜像是最快最安全的模式.同时最好的是拉取官方镜像保存到OSS.自己网上下载的镜像有些是不能用的(亲自体验过).
使用 OSS 直接存储镜像文件
#!/bin/bash
# backup-to-oss.sh - 镜像备份到 OSS
OSS_BUCKET="OSS_BUCKET"
OSS_ENDPOINT="OSS_ENDPOINT"
OSS_PATH="OSS_PATH"
LOCAL_TAR="portainer.tar"
echo "📥 拉取官方镜像..."
docker pull $IMAGE_NAME
echo "💾 保存镜像为 tar 文件..."
docker save $IMAGE_NAME -o $LOCAL_TAR
echo "🚀 上传到 OSS..."
# 使用 ossutil 工具上传
ossutil cp $LOCAL_TAR oss://$OSS_BUCKET/$OSS_PATH
echo "🧹 清理本地文件..."
rm -f $LOCAL_TAR
echo "✅ 镜像已备份到 OSS: oss://$OSS_BUCKET/$OSS_PATH"
从 OSS 恢复并部署
正常上传时,需要OSSutil安装,然后才能上传.下载的时候,OSS的文件可以设置为公共读方式,然后可以用wget下载
#!/bin/bash
# deploy-from-oss.sh - 从 OSS 部署
OSS_BUCKET="OSS_BUCKET"
OSS_ENDPOINT="OSS_ENDPOINT"
OSS_PATH="OSS_PATH"
LOCAL_TAR="portainer.tar"
echo "📥 从 OSS 下载镜像..."
# ossutil cp oss://$OSS_BUCKET/$OSS_PATH $LOCAL_TAR
wget -O $LOCAL_TAR "http://${OSS_BUCKET}.${OSS_ENDPOINT}/${LOCAL_TAR}"
echo "🐳 加载镜像到 Docker..."
docker load -i $LOCAL_TAR
echo "🚀 启动 Portainer..."
docker run -d \
-p 9000:9000 \
--name portainer \
--restart unless-stopped \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
echo "🧹 清理临时文件..."
rm -f $LOCAL_TAR
echo "✅ Portainer 部署完成!"
浙公网安备 33010602011771号