docker 复制远程镜像本地并创建容器
#!/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
#fi
REMOTE_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:latest
echo "迁移完成!"
rm -f "$IMAGE_FILE"
留待后查,同时方便他人
联系我:renhanlinbsl@163.com
联系我:renhanlinbsl@163.com

浙公网安备 33010602011771号