docker搭建私有仓库

 

 1、安装运行私有register容器

 docker run -d -v /myregistry:/var/lib/registry -p 5000:5000 --name xuRegistry registry

 参数说明:

-d 后台启动容器

-p 端口映射  将容器的5000端口映射到Host的5000端口

-v  将容器的/var/lib/registry目录映射到Host的myregistry,用于存放镜像数据

验证是否成功可以通过访问 http:// host:5000/v2

 

 

2、push镜像到仓库 

  Note:以推送hello-world到私有仓库为例

 2.1 docker images查看所有镜像

  

2.2 通过docker tag将hello-world镜像标志为要推送到私有仓库,镜像名称由repository和tag两部分组成

而repository的完整格式为:host:post/username/xxx,只有Docker Hub上的镜像可以省略:host:post

docker tag hello-world:latest hostip:5000/xu/hello-world:latest 

2.3  通过 docker push 命令将hello-world镜像 push到私有仓库中

 docker push  hostip:5000/xu/hello-world:latest

Docker自从1.3.X之后docker registry交互默认使用的是HTTPS,但是搭建私有镜像默认使用的是HTTP服务,所以与私有镜像交时出现以下错误。 

http: server gave HTTP response to HTTPS client

解决方案:

方案一:

vim /usr/lib/systemd/system/docker.service 

在12行后面增加  --insecure-registry  host:5000 

修改好后重启docker 服务

systemctl daemon-reload 

systemctl restart docker.service 

重启docker服务后,将容器重启

docker start $(docker ps -aq)

 方案二:

vim  /etc/docker/daemon.json 
增加内容
{ 
    "insecure-registries": ["host:5000"] 
}  

修改好后重启docker 服务

systemctl daemon-reload 

systemctl restart docker.service 

重启docker服务后,将容器重启

docker start $(docker ps -aq)
 然后重新push到私有库,应该就能成功了

 可以通过访问host:5000/v2/_catalog验证推送是否成功

  
posted @ 2022-07-24 19:01  誓鼎  阅读(269)  评论(0编辑  收藏  举报