
docker的私有仓库
docker registry
1.1 pull下registry官方镜像tar包并加载镜像
[root@docker01 ~]# docker load -i registry.tar.gz1.2 普通的registry
[root@docker01 ~]# docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry registry1.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 docker1.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认证的registry2.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)" } } //私有仓库的认证文件