Docker registry(私有仓库)
指尖二进制 • 1 年前 • 890 次点击 • DOCKER
[TOC]
一:普通的registry
参数:
--restart=always:默认重启docker服务容器会停止,加上--restart=always参数会启动docker就运行对应的容器
1.1:创建私有仓库
[root@docker-01 ~]# docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry registry
1.2:上传镜像到私有仓库,给镜像打标签
[root@docker-01 ~]# docker tag centos6_9_ssh:v1 10.0.0.11:5000/centos6_9_ssh:v1
1.3:上传镜像到私有仓库,上传镜像
[root@docker-01 ~]# docker push 10.0.0.11:5000/centos6_9_ssh:v1
The push refers to repository [10.0.0.11:5000/centos6_9_ssh]
Get https://10.0.0.11:5000/v2/: http: server gave HTTP response to HTTPS client
如果遇到报错:The push refers to repository [10.0.0.11:5000/centos6_9_ssh]
Get https://10.0.0.11:5000/v2/: http: server gave HTTP response to HTTPS client
1.4:解决方法
[root@docker-01 ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://jo62x4tn.mirror.aliyuncs.com"],
"insecure-registries": ["10.0.0.11:5000"]
}
[root@docker-01 ~]# systemctl restart docker
1.5:再次上传
[root@docker-01 ~]# docker push 10.0.0.11:5000/centos6_9_ssh:v1
The push refers to repository [10.0.0.11:5000/centos6_9_ssh]
d94bea51a22d: Pushed
70fa7f8cb1f4: Pushed
b0dc33c5ce36: Pushed
aaa5621d7c01: Pushed
v1: digest: sha256:e217e278a41da105e2d78b427230573cc719bf2b4630b4c0e5816094dbcdfc92 size: 1156
查看私有镜像仓库可以使用docker image ls
查看具体镜像版本
二:带basic认证的registry
一定要删除之前创建的私有仓库registry容器
2.1:生成加密信息
[root@docker-01 ~]# yum install httpd-tools -y
[root@docker-01 ~]# mkdir /opt/registry-var/auth/ -p
[root@docker-01 ~]# htpasswd -Bbn docker 123456 >> /opt/registry-var/auth/htpasswd
[root@docker-01 ~]# cat /opt/registry-var/auth/htpasswd
docker:$2y$05$XN/W1MuEQNF7roXsgwDVxuGKBuvrCW226QRqHoTv9Ge8bzr1pPQt.
2.2:创建认证仓库
-v 挂载文件到容器
-e 一些变量参数
[root@docker-01 ~]# docker run -d -p 5000:5000 --restart=always -v /opt/registry-var/auth/:/auth/ -v /opt/myregistry:/var/lib/registry -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" registry
2.3:打标签并上传镜像
[root@docker-01 ~]# docker tag centos:6.9 10.0.0.11:5000/centos:6.9
[root@docker-01 ~]# docker push 10.0.0.11:5000/centos:6.9
The push refers to repository [10.0.0.11:5000/centos]
aaa5621d7c01: Preparing
no basic auth credentials
报错原因:需要账号密码
2.4:错误解决并再次上传镜像
[root@docker-01 ~]# docker login 10.0.0.11:5000
Username: docker
Password: 123456
WARNING! Your password will be stored unencrypted in /root/.docker/config.json. #只要这个文件不删除,一直可以免密上传
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
[root@docker-01 ~]# docker push 10.0.0.11:5000/centos:6.9 #测试上传镜像。ok
The push refers to repository [10.0.0.11:5000/centos]
aaa5621d7c01: Pushed
6.9: digest: sha256:7e172600dff1903f186061ce5f5295664ec9942ca120e4e5b427ddf01bb2b35b size: 529