windows推送docker镜像仓库bat脚本

windows推送docker镜像仓库脚本(保存下边内容存储为bat文件)

用户名密码、镜像仓库地址和路径请自行修改

仓库名称和标签用空格分隔

执行流程

1、本地如果不存在镜像则会从官方仓库拉取(保证自己的网络可以正常访问)
2、自动打标签并推送
3、推送成功后删除tag镜像

@echo off
setlocal

REM 设置代码页为 UTF-8
chcp 65001

REM 设置 Docker 仓库用户名和密码
set DOCKER_USERNAME=admin
set DOCKER_PASSWORD=harbor123

REM 设置 Docker 仓库地址和目标路径
set DOCKER_REPO=192.168.21.234:81
set TARGET_PATH=tools

REM 定义镜像名称和标签用空格分隔
set IMAGES=node:20.6.1 node:16.17.1

REM 登录到 Docker 仓库
echo 正在登录到 Docker 仓库...
docker login --username=%DOCKER_USERNAME% --password %DOCKER_PASSWORD% %DOCKER_REPO%

REM 验证登录
docker info >nul 2>&1
if errorlevel 1 (
    echo Docker 登录失败,请检查用户名和密码。
    pause
    exit /b 1
)

REM 构建和推送每个镜像
for %%I in (%IMAGES%) do (
    REM 提取镜像名称和标签
    for /f "tokens=1,2 delims=:" %%A in ("%%I") do (
        set "IMAGE_NAME=%%A"
        set "IMAGE_TAG=%%B"

        REM 检查本地是否存在镜像,如果不存在则拉取镜像
        docker image inspect %%I >nul 2>&1
        if errorlevel 1 (
            echo 本地不存在镜像 %%I,正在拉取...
            docker pull %%I
        )

        REM 标记 Docker 镜像
        call docker tag %%I %DOCKER_REPO%/%TARGET_PATH%/%%A:%%B

        echo 推送镜像:%DOCKER_REPO%/%TARGET_PATH%/%%A:%%B

        REM 推送 Docker 镜像
        call docker push %DOCKER_REPO%/%TARGET_PATH%/%%A:%%B

        REM 删除本地的标签
        call docker rmi %DOCKER_REPO%/%TARGET_PATH%/%%A:%%B
    )
)

echo 推送完成!
pause

endlocal
@echo on
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值