上一篇文章讲了【docker实战】如何登陆到自己的私有仓库? – 经云的清净小站 (skycreator.top)。那么后面的工作就是如何上传镜像到自己的私有仓库了。
下面的操作是使用docker login命令成功之后的操作,没有login请先login。
我打算将本地的ubuntu:18.04推送到自己的私有仓库http://41.68.153.178:6114的images文件夹下,于是我输入了以下命令:
docker push http://41.68.153.178:6114/images/ubuntu:18.04
invalid reference format
结果报错了。说明我推送的格式不正确。
原来要推送镜像,需要先将镜像改名,否则就会显示这条错误信息invalid reference format。
我再次输入,又报错了。
docker tag ubuntu:18.04 http://41.68.153.178:6114/images/ubuntu:18.04
Error parsing reference: "http://41.68.153.178:6114/images/ubuntu:18.04" is not a valid repository/tag: invalid reference format
看起来命令没错,但还是错误的格式,虽然没有给出更确切的提示,但直觉告诉我,错误可能出在http://的前缀上。于是去除前缀再次命名镜像:
docker tag ubuntu:18.04 41.68.153.178:6114/images/ubuntu:18.04
没有任何提示,说明成功了。于是我推送
docker push 41.68.153.178:6114/images/ubuntu:18.04
The push refers to repository [41.68.153.178:6114/images/ubuntu]
824bf068fd3d: Pushed
这次推送成功。登陆Harbor查看,该镜像成功推送。
步骤总结
上传镜像到私有仓库一共需要三个步骤:
1.登陆私有仓库
cat ./my_password.txt | docker login --username admin --password-stdin http://41.68.153.178:6114
其中my_password.txt是私有仓库登陆密码,admin是私有仓库登陆名,后面http://41.68.153.178:6114是私有仓库的IP地址和端口号。
2.给要上传镜像打标签
docker tag ubuntu:18.04 41.68.153.178:6114/images/ubuntu:18.04
3.上传镜像
docker push 41.68.153.178:6114/images/ubuntu:18.04