背景:
很多情况下我们在本地搭建了本地镜像私服,但有需要将一些dockerhub上的镜像推送到这个本地镜像私服。
以下是详细步骤:
以Harbor镜像私服为例
1、将dockerhub中需要的镜像下载至本地(本地如果已经下载了,请忽略)
docker pull justb4/jmeter
#比如下载jmeter的镜像,justb4/jmeter为jmeter的镜像
查看本地是否已经下载到:
docker images
如果列表中显示刚下载的 justb4/jmeter,即下载成功
2、登录到Harbor私服
docker login 私服ip:端口
3、根据提示,输入用户名和密码以登录到您的Harbor私服
如果登录报 :
error response from daemon: Get "xxxxx": http: server gave HTTP response to HTTPS client
原因是 Docker客户端试图使用HTTPS与私服通信,但私服配置为仅接受HTTP请求。因此,需要在Docker客户端配置中启用HTTP来与私服进行通信。解决方案:
1、打开Docker配置文件 daemon.json。
对于Linux系统,该文件通常位于/etc/docker/目录下。
对于Windows系统,该文件位于C:\ProgramData\Docker\config\目录下。
如果daemon.json文件不存在,则创建该文件。
在daemon.json文件中添加以下内容:
{
"insecure-registries": ["私服IP:端口"]
}
2、保存并关闭 daemon.json文件
3、重启docker服务
sudo systemctl restart docker
4、重新标记本地镜像
docker tag justb4/jmeter:latest 私服IP:端口/library/justb4/jmeter:latest
#将本地镜像justb4/jmeter:latest重新标记为Harbor私服的镜像地址 私服IP:端口/library/justb4/jmeter:latest
5、推送镜像到Harbor私服
docker push 私服IP:端口/library/justb4/jmeter:latest
使用docker push
命令将重新标记的镜像推送到Harbor私服。这会将镜像上传至私服并存储在对应的仓库中。
确保替换命令中的私服地址和仓库名称为您实际的Harbor私服信息。
完成后,您的镜像就会推送到Harbor私服中,并可以在私服中使用和管理该镜像了。