docker私有倉庫registry的使用

1.registry的安裝

關於docker registry的安裝,能夠說簡單的不能再簡單了,docker run一個容器就行了,也就是一條命令的事python

docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry registry

2.上傳鏡像

上次鏡像其實就兩步,給鏡像打tag和push上傳nginx

2.1 打tag

格式:docker tag 源鏡像名字:版本 私有倉庫地址/鏡像名字:版本docker

例如:json

docker tag centos:6.10 10.0.0.11:5000/centos:6.10

2.2 push上傳

docker push 10.0.0.11:5000/centos:6.10

默認上傳確定報錯!

The push refers to a repository [10.0.0.11:5000/centos:6.10]

Get https://10.0.0.11:5000/v1/_ping: http: server gave HTTP response to HTTPS client

解決辦法:

把本身的私有鏡像倉庫加到信任的倉庫列表中。

vi /etc/docker/daemon.json

{

"registry-mirrors": ["https://registry.docker-cn.com"],

"insecure-registries": ["10.0.0.11:5000"]

}

systemctl restart docker

而後從新push

3.下載鏡像

下載鏡像就一條命令docker pull

例如:

docker pull 10.0.0.11:5000/centos:6.10

默認下載確定報錯!

Trying to pull repository 10.0.0.11:5000/centos ...

Get https://10.0.0.11:5000/v1/_ping: http: server gave HTTP response to HTTPS client

解決辦法同上傳

4.查看鏡像列表

使用瀏覽器訪問:centos

http://10.0.0.11:5000/v2/_catalog瀏覽器

5.查看鏡像的版本

下面我已nginx爲例spa

http://10.0.0.11:5000/v2/nginx/tags/listrest

6.刪除鏡像

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

7.帶認證的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

 

提示:上傳下載鏡像都須要登錄哦

docker login 10.0.0.11:5000

oldboy

123456

docker logout 10.0.0.11:5000登出
相關文章
相關標籤/搜索