Windows本地构建镜像推送远程仓库

在这里插入图片描述

下载 Docker Desktop

https://smartidedl.blob.core.chinacloudapi.cn/docker/20210926/Docker-win.exe
使用本地docker构建镜像和推送至远程仓库(harbor)

1、开启docker的2375端口

2、配置远程仓库push镜像可以通过http

harbor.soujer.com:5000

在这里插入图片描述

ps:可添加data-root指定docker,镜像存储和使用的目录

3、环境变量指定成本地的2375端口

ps:无特殊情况改配置以后不需要修改

DOCKER_HOST tcp://127.0.0.1:2375

4、指定远程仓库

ps:打包时推到哪个项目仓库,通过hosts的 harbor.soujer.com 来指定即可

到此即可推送镜像到远程仓库(对应项目仓库)
ps:需确认本地可以访问对应远程仓库ip,ping或者浏览器可以打开即可
注意:需要修改程序中harbor推送目录

5、推送远程仓库

1)批处理打包方式

使用本地项目中bat文件进行打包、推送操作

@echo off
set THREAD=1C
REM 如果jdk不是1.8,就要改为自己的jdk1.8的路径
set JAVA_HOME=%JAVA_HOME%

echo mvn clean package......
start /B /WAIT cmd /c "mvn clean package -T %THREAD% -D maven.test.skip=true -P company-repo,nexus,dev -q -f pom.xml"
rem 如果cmd执行失败,则后续的命令不会执行。
if %ERRORLEVEL% neq 0 (
    echo Error: mvn clean package failed.
    exit /b %ERRORLEVEL%
)
echo mvn dockerfile:build......
start /B /WAIT cmd /c "cd ./soujer-start && mvn dockerfile:build -T %THREAD% -q -f pom.xml"
if %ERRORLEVEL% neq 0 (
    echo Error: mvn dockerfile:build failed.
    exit /b %ERRORLEVEL%
)

echo mvn dockerfile:push ......
start /B /WAIT cmd /c "cd ./soujer-start && mvn dockerfile:push -q -f pom.xml"
if %ERRORLEVEL% neq 0 (
    echo Error: mvn dockerfile:push failed.
    exit /b %ERRORLEVEL%
)

echo all operations successful!!!


exit

2)本地方式

使用PowerShell终端docker命令推送,需要docker登录harbor仓库

docker login http://harbor.soujer.com:5000
输入用户
输入密码

推送至仓库

docker push harbor.soujer.com:5000/[项目名称]/soujer-start:[tag]

【项目名称】配置harbor仓库项目,如:soujer
【tag】构建镜像时配置的tag号,或者在本地触发构建时查看

如上图,命令触发push

docker push harbor.soujer.com:5000/soujer/soujer-start:1.1.55-BASE

推送成功后可在harbor仓库查看确认是否成功即可

6、问题

出现如下问题:

unauthorized: unauthorized to access repository: soujer/soujer-start-stand, action: push: unauthorized to access repository: soujer/soujer-start-stand, action: push

先清除本地的docker登录验证
docker logout harbor.soujer.com:5000

找到本地电脑 C:\Users\用户名\.docker

删除config文件中的auths中的所有内容,然后重启docker或者关闭docker服务再开启试试(最保险的方式重启电脑)

出现这个问题

下载这个解决:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
出现下面的问题:

解决方案:
cmd/shell下执行

netsh winsock reset

然后重启docker就好了

本文作者

Soujer

要将Docker镜像推送远程仓库,你可以按照以下步骤进行操作: 1. 首先,确保你已经构建了要推送Docker镜像。你可以使用Dockerfile来构建镜像,使用命令`docker build -t dockerId/镜像名:标签 .`,其中dockerId是你的Docker账号,镜像名是你给镜像起的名字,标签是你给镜像打的标签。例如,`docker build -t docker2021ne/jdk1.8:0713 .`\[2\] 2. 登录到Docker账号,使用命令`docker login`,并输入你的Docker账号和密码\[2\] 3. 推送镜像远程仓库,使用命令`docker push dockerId/镜像名:标签`,其中dockerId是你的Docker账号,镜像名是你给镜像起的名字,标签是你给镜像打的标签。例如,`docker push docker2021ne/jdk1.8:0713`\[1\] 4. 等待推送完成,你的镜像就会被上传到远程仓库中了\[1\] 如果你想下载远程仓库中的镜像,可以使用命令`docker pull dockerId/镜像名:标签`,其中dockerId是镜像所属的Docker账号,镜像名是镜像的名字,标签是镜像的标签。例如,`docker pull docker2021ne/jdk1.8:0713`\[3\]。 #### 引用[.reference_title] - *1* *2* *3* [Docker push命令使用 Docker镜像推送远程仓库 Docker镜像推送Dockerhub](https://blog.youkuaiyun.com/HaHa_Sir/article/details/119412754)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Soujer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值