docker-私有仓库-身份验证

服务端

拉取registry镜像

docker pull registry

启动registry容器

docker run -d -p 5000:5000 
--restart always 
--name registry 
-e "REGISTRY_AUTH=htpasswd" 
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" 
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd 
registry

使用htpasswd创建密码文件

registry镜像的最新版没有包含htpasswd,所以我们可以在宿主机上创建密码文件,再复制到registry容器中

宿主机上安装htpasswd(包含在httpd-tools中)

yum install httpd-tools

创建密码文件

htpasswd -Bbn <用户名> <密码> >htpasswd

复制到registry容器

docker cp htpasswd registry:/auth/

客户端

浏览器查看仓储

访问 http://<服务器地址>:5000/v2/_catalog ,要求身份验证:

验证通过后页面:

docker操作

添加insecure-registries配置

修改daemon.json,在insecure-registries数组中添加服务器地址(因为没有配置证书),再重启docker

{
  "insecure-registries": [
    "<服务器地址>:5000"
  ]
}

登录私有仓库

docker login -u <用户名> -p <密码> http://<服务器地址>:5000/

推送镜像到私有仓库

以busybox为例
下载busybox的镜像
docker pull busybox
打上自定义标签
docker tag busybox <服务器地址>:5000/busybox:test
推送镜像
docker push <服务器地址>:5000/busybox:test
查看仓储,已经包含上传的镜像

删除本地镜像
docker rmi <服务器地址>:5000/busybox:test
从私有仓库拉取镜像
docker pull <服务器地址>:5000/busybox:test

原文地址:https://www.cnblogs.com/LaughAtSelfsWrong/p/14172525.html