docker(15):docker的私有仓库registry
docker(15):docker的私有仓库registry
https://www.qstack.com.cn/archives/350.html
https://www.cnblogs.com/luoahong/p/10284186.html
1 运行docker私有仓库
1.1 安装registry
docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry registry
当容器启动完成,私有仓库就可以使用了
[root@docker-136 ~]# docker images | grep registry registry latest f32a97de94e1 5 months ago 25.8MB [root@docker-136 ~]# docker ps -a| grep registry d61015680b28 registry "/entrypoint.sh /etc…" 43 seconds ago Up 40 seconds 0.0.0.0:5000->5000/tcp registry [root@docker-136 ~]#
2 上传镜像到私有仓库
2.1 给要上传的镜像打tag
[root@docker-136 ~]# docker images | grep centos-7 centos-7-ssh-nginx v1 93af120d6d0b 4 days ago 413MB [root@docker-136 ~]# [root@docker-136 ~]# docker image tag centos-7-ssh-nginx:v1 192.168.0.136:5000/centos-7-ssh-nginx:v1 [root@docker-136 ~]# docker images | grep centos-7 192.168.0.136:5000/centos-7-ssh-nginx v1 93af120d6d0b 4 days ago 413MB centos-7-ssh-nginx v1 93af120d6d0b 4 days ago 413MB [root@docker-136 ~]#
2.2 上传
[root@docker-136 ~]# docker push 192.168.0.136:5000/centos-7-ssh-nginx The push refers to repository [192.168.0.136:5000/centos-7-ssh-nginx] Get https://192.168.0.136:5000/v2/: http: server gave HTTP response to HTTPS client [root@docker-136 ~]#
2.3 解决报错再次上传
[root@docker-136 ~]# cat /etc/docker/daemon.json { "registry-mirrors": ["https://6ek3bw21.mirror.aliyuncs.com"], "insecure-registries": ["192.168.0.136:5000"] } [root@docker-136 ~]# systemctl restart docker [root@docker-136 ~]# docker push 192.168.0.136:5000/centos-7-ssh-nginx The push refers to repository [192.168.0.136:5000/centos-7-ssh-nginx] a9a815c886b9: Pushed d69483a6face: Pushed v1: digest: sha256:2621e4353582ea953fc7974e100d84c117ecf1e59ca389430aa2c40267b49ddf size: 741 [root@docker-136 ~]# [root@docker-136 repositories]# pwd /opt/myregistry/docker/registry/v2/repositories #上传镜像的位置 [root@docker-136 repositories]# ls centos-7-ssh-nginx [root@docker-136 repositories]#
3 下载镜像
[root@docker-136 repositories]# docker images | grep centos-7 192.168.0.136:5000/centos-7-ssh-nginx v1 93af120d6d0b 5 days ago 413MB centos-7-ssh-nginx v1 93af120d6d0b 5 days ago 413MB [root@docker-136 repositories]# docker image rm 192.168.0.136:5000/centos-7-ssh-nginx:v1 Untagged: 192.168.0.136:5000/centos-7-ssh-nginx:v1 Untagged: 192.168.0.136:5000/centos-7-ssh-nginx@sha256:2621e4353582ea953fc7974e100d84c117ecf1e59ca389430aa2c40267b49ddf [root@docker-136 repositories]# docker images | grep centos-7 centos-7-ssh-nginx v1 93af120d6d0b 5 days ago 413MB [root@docker-136 repositories]# docker pull 192.168.0.136:5000/centos-7-ssh-nginx:v1 v1: Pulling from centos-7-ssh-nginx Digest: sha256:2621e4353582ea953fc7974e100d84c117ecf1e59ca389430aa2c40267b49ddf Status: Downloaded newer image for 192.168.0.136:5000/centos-7-ssh-nginx:v1 192.168.0.136:5000/centos-7-ssh-nginx:v1 [root@docker-136 repositories]# docker images | grep centos-7 192.168.0.136:5000/centos-7-ssh-nginx v1 93af120d6d0b 5 days ago 413MB centos-7-ssh-nginx v1 93af120d6d0b 5 days ago 413MB [root@docker-136 repositories]#
4 查看镜像列表和版本
列表 http://192.168.0.136:5000/v2/_catalog
版本 http://192.168.0.136:5000/v2/centos-7-ssh-nginx/tags/list
5 删除镜像
#1)进入docker registry的容器中 docker exec -it registry /bin/sh #2) 删除repo rm -fr /var/lib/registry/docker/registry/v2/repositories/ centos-7-ssh-nginx #3) 清楚掉blob registry garbage-collect /etc/docker/registry/config.yml
6 带base认证的私有仓库
yum install httpd-tools -y mkdir /opt/registry-var/auth/ -p htpasswd -Bbn admin 123456 >> /opt/registry-var/auth/htpasswd #关闭之前的registry 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
[root@docker-136 ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d61015680b28 registry "/entrypoint.sh /etc…" 34 minutes ago Up 16 minutes 0.0.0.0:5000->5000/tcp registry c0157be0d8da zabbix/zabbix-web-nginx-mysql:latest "docker-entrypoint.sh" About an hour ago Exited (0) 29 minutes ago zabbix-web-nginx-mysql fbb8488ecdd4 zabbix/zabbix-server-mysql:latest "/sbin/tini -- /usr/…" About an hour ago Exited (1) 29 minutes ago zabbix-server-mysql 30ea677e88a2 zabbix/zabbix-java-gateway:latest "docker-entrypoint.sh" About an hour ago Exited (137) 29 minutes ago zabbix-java-gateway a008337eb10c mysql:5.7 "docker-entrypoint.s…" About an hour ago Exited (0) 29 minutes ago mysql-server [root@docker-136 ~]# docker stop d61015680b28 d61015680b28 [root@docker-136 ~]# 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 22b6f523211438d927700910e1caa93c163250745134b9b1443ac0bdbce5f229 [root@docker-136 ~]# docker ps -a| grep registry 22b6f5232114 registry "/entrypoint.sh /etc…" 30 seconds ago Up 28 seconds 0.0.0.0:5000->5000/tcp kind_mclaren d61015680b28 registry "/entrypoint.sh /etc…" 35 minutes ago Exited (2) 44 seconds ago registry
提示:上传下载镜像都需要登陆
[root@docker-136 ~]# docker images | grep centos-7 centos-7-ssh-nginx v1 93af120d6d0b 5 days ago 413MB [root@docker-136 ~]# docker pull 192.168.0.136:5000/centos-7-ssh-nginx:v1 Error response from daemon: Get http://192.168.0.136:5000/v2/centos-7-ssh-nginx/manifests/v1: no basic auth credentials [root@docker-136 ~]# docker login 192.168.0.136:5000 Username: admin 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@docker-136 ~]# docker pull 192.168.0.136:5000/centos-7-ssh-nginx:v1 v1: Pulling from centos-7-ssh-nginx Digest: sha256:2621e4353582ea953fc7974e100d84c117ecf1e59ca389430aa2c40267b49ddf Status: Downloaded newer image for 192.168.0.136:5000/centos-7-ssh-nginx:v1 192.168.0.136:5000/centos-7-ssh-nginx:v1 [root@docker-136 ~]# docker images | grep centos-7 192.168.0.136:5000/centos-7-ssh-nginx v1 93af120d6d0b 5 days ago 413MB centos-7-ssh-nginx v1 93af120d6d0b 5 days ago 413MB [root@docker-136 ~]#