命令记不住

登陆

docker 的私有仓库

docker的私有仓库

docker registry

1.1 pull下registry官方镜像tar包并加载镜像

[root@docker01 ~]# docker load -i registry.tar.gz

1.2 普通的registry

[root@docker01 ~]# docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry  registry

1.3 镜像标签理解

[root@docker01 ~]# docker  tag centos6-sshd:v3 10.0.0.11:5000/centos6-sshd:v3
//打私有仓库标签

[root@docker01 ~]# docker image ls
docker images|grep busybox
10.0.0.11:5000/x86cloud/busybox   latest              d8233ab899d4        3 weeks ago         1.2 MB
busybox                           latest              d8233ab899d4        3 weeks ago         1.2 MB
//打过标签的镜像为原始镜像的硬链接

1.4 上传镜像到私有仓库:
a:给镜像打标签

[root@docker01 ~]# docker tag centos6-sshd:v3 10.0.0.11:5000/centos6-sshd:v3
b:上传镜像

[root@docker01 ~]# docker push 10.0.0.11:5000/centos6-sshd:v3
1.5 如果遇到非https报错:

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

解决方法配置信任站点:

[root@docker01 ~]# vim  /etc/docker/daemon.json
{
  "insecure-registries": ["10.0.0.11:5000"]
}

[root@docker01 ~]# systemctl restart docker

1.6 带basic认证的registry
1.私有仓库添加许可认证

[root@docker01 ~]# yum install httpd-tools -y
[root@docker01 ~]# mkdir /opt/registry-var/auth/ -p
[root@docker01 ~]# htpasswd  -Bbn x86cloud 123456  >> /opt/registry-var/auth/htpasswd
//配置basic认证

[root@docker01 ~]# docker run -d -p 5000:5000 -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 
//RUN带有basic认证的registry

2.push和pull镜像需要做登录认证

[root@docker01 ~]# docker pull 10.0.0.91:5000/centos6_sshd:v14 
Error response from daemon: Get http://10.0.0.91:5000/v2/centos6_sshd/manifests/v14: no basic auth credentials
//提示未登陆
[root@docker01 ~]# docker login 10.0.0.91:5000
Username: x86cloud
Password: 
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@docker01 ~]# cat /root/.docker/config.json 
{
	"auths": {
		"10.0.0.91:5000": {
			"auth": "eDg2Y2xvdWQ6MTIzNDU2"
		}
	},
	"HttpHeaders": {
		"User-Agent": "Docker-Client/18.09.2 (linux)"
	}
}
//私有仓库的认证文件
推荐阅读