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