#!/bin/bash
# 简化版Docker镜像迁移脚本
# xx.sh root@127.0.0.1 xxx:latest containername
set -e#if [ $# -ne 3 ]; then
# echo "用法: $0 <远程主机> <镜像名> <容器名>"
# echo "示例: $0 user@example.com nginx:latest my-nginx"
# exit 1
#fiREMOTE_HOST="root@127.0.0.1"
IMAGE_NAME="test:latest"
CONTAINER_NAME="$3"
IMAGE_FILE="/tmp/${IMAGE_NAME//:/_}.tar"echo "正在从远程服务器导出镜像..."
ssh "$REMOTE_HOST" "rm -f $IMAGE_FILE"
ssh "$REMOTE_HOST" "docker save -o $IMAGE_FILE $IMAGE_NAME"echo "正在复制镜像文件到本地..."
sudo rm "$IMAGE_FILE"
scp "$REMOTE_HOST:$IMAGE_FILE" "$IMAGE_FILE"echo "正在清理远程临时文件..."
ssh "$REMOTE_HOST" "rm -f $IMAGE_FILE"echo "正在导入镜像到本地Docker..."
sudo docker load -i "$IMAGE_FILE"echo "正在创建容器..."
sudo docker stop harper-admin-product
sudo docker rm harper-admin-product
sudo docker run -v /server/api/nocode_product/appsettings.json:/app/appsettings.Production.json -e TZ=Asia/Shanghai -d -p 8101:8080 --name harper-admin-product --restart always --network local harper-admin:latestecho "迁移完成!"
rm -f "$IMAGE_FILE"