1. registry部署
0. 導入鏡像
[root@docker01 ~]# docker load -i registry.tar.gz
1.啓動容器:
[root@docker01 ~]# docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry registry:latest
2.上傳鏡像到私有倉庫: [docker02]
a:給鏡像打標籤 docker tag centos6-sshd:v3 10.0.0.11:5000/centos6-sshd:v3
b:上傳鏡像 docker push 10.0.0.11:5000/centos6-sshd:v3
如果遇到報錯:
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@docker02 ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"insecure-registries": ["10.0.0.11:5000"]
}
[root@docker02 ~]# docker push 10.0.0.11:5000/nginx:latest
The push refers to repository [10.0.0.11:5000/nginx]
e8dc1aeb3107: Pushed
b5e11aae8a8e: Pushed
latest: digest: sha256:1f0135c62f2521cbc0426ffad0d8e7e85be116d34cff774ff824bb922171cd0f size: 741
docker01===》啓動registry容器---->
[root@docker01 opt]# rm -rf /opt/myregistry/ 清理緩存
docker02===》push鏡像到docker01--->前提需要配置/etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"insecure-registries": ["10.0.0.11:5000"]
}
docker02清理緩存
systemctl stop docker
[root@docker02 docker]# rm -rf /var/lib/docker/*
systemctl restart docker
從內網pull鏡像
[root@docker02 ~]# docker pull 10.0.0.11:5000/centos:6.9
2. registry查看鏡像
瀏覽器訪問http://10.0.0.11:5000/v2/_catalog
查看鏡像版本:
刪除鏡像
1)進入docker registry的容器中
docker exec -it registry /bin/sh
2) 刪除repo
rm -fr /var/lib/registry/docker/registry/v2/repositories/nginx
3) 清除掉blob
registry garbage-collect /etc/docker/registry/config.yml
帶認證的registry
yum install httpd-tools -y
mkdir /opt/registry-var/auth/ -p
htpasswd -Bbn oldboy 123456 >> /opt/registry-var/auth/htpasswd
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
提示:上傳下載鏡像都需要登陸哦
痛點:
- 如果要查看所有的鏡像和版本,只能一個一個看,不易管理;
- 沒有安全認證,所有人都可以上傳鏡像
3. 上傳鏡像至官方倉庫
[root@docker02 ~]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: chengyinwu
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@docker02 ~]# docker tag centos:6.9 chengyinwu/centos:6.9
[root@docker02 ~]# docker push chengyinwu/centos:6.9
The push refers to repository [docker.io/chengyinwu/centos]
b5e11aae8a8e: Pushing [=> ] 6.467MB/194.8MB
查看賬號:
[root@docker02 ~]# cat /root/.docker/config.json