Docker推送镜像到私有Registry时认证失败怎么办?
我在本地搭了个私有Docker Registry,用的是HTTP(没配HTTPS),也加了insecure-registries配置。但每次执行 docker push my-registry:5000/my-vue-app 都报“unauthorized: authentication required”。明明没开认证啊,是不是哪里漏了?
我的Vue项目打包成镜像的Dockerfile没问题,本地run也能起来。下面是App.vue里的一段测试代码:
<template>
<div id="app">
<h1>Hello from Vue in Docker!</h1>
<p>Registry test</p>
</div>
</template>
<script>
export default {
name: 'App'
}
</script>
其次,虽然你提到了已经配置了
insecure-registries,但有时候这个配置可能没有生效或者没有正确配置。你需要确保Docker客户端能够识别这个配置。可以在/etc/docker/daemon.json中添加如下配置,然后重启Docker服务:记得重启Docker服务后,再尝试推送镜像。
另外,如果Registry真的没有开启认证,而你仍然收到认证错误,可能是之前有登录记录导致的。可以尝试清除登录信息,然后再试一次:
最后,确保你的Registry服务正常运行,可以通过浏览器访问Registry的地址(比如http://my-registry:5000/v2/_catalog)来确认它是否返回了预期的结果。
希望这些步骤能帮你解决问题。记得转义特殊字符,特别是在配置文件中。