180. docker registry(私有倉庫)

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

提示:上傳下載鏡像都需要登陸哦

痛點:

  1. 如果要查看所有的鏡像和版本,只能一個一個看,不易管理;
  2. 沒有安全認證,所有人都可以上傳鏡像

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 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章