docker搭建私有倉庫

運行 registry 鏡像

安裝 Docker 后,可以通過官方提供的 registry 鏡像來簡單搭建一套本地私有倉庫環(huán)境:
查看官方文檔:https://hub.docker.com/_/registry

注意:當前機器是centos7, ip 是 192.168.245.133

$ docker run -d -p 5000:5000 --restart always --name registry registry:2

創(chuàng)建私有鏡像

$ docker pull ubuntu
$ docker tag ubuntu localhost:5000/ubuntu
# 本機ip是192.168.245.133。為什么不用ip,后面會說
$ docker push localhost:5000/ubuntu

查看鏡像

$ docker images
localhost:5000/ubuntu                latest              ba6acccedd29        11 months ago       72.8MB

查看鏡像倉庫中的鏡像

# 列出所有鏡像
$ curl http://localhost:5000/v2/_catalog
{"repositories":["ubuntu"]}

# 列出鏡像的所有標簽
$ curl http://localhost:5000/v2/ubuntu/tags/list
{"name":"ubuntu","tags":["latest"]}

此時我們可以在另外一臺機器(192.168.124.132)來拉去下這個鏡像

[root@192 ~]# docker pull 192.168.245.133:5000/ubuntu
Using default tag: latest
Error response from daemon: Get "https://192.168.245.133:5000/v2/": http: server gave HTTP response to HTTPS client

遇到上面錯誤,我們需要修改下 /etc/docker/daemon.json配置

{
"insecure-registries":["192.168.245.133:5000"],
"registry-mirrors": ["https://9fgss2yh.mirror.aliyuncs.com"]
}

配置 insecure-registries(不安全的注冊地址), 加上需要鏡像倉庫地址

修改之后重啟下docker

systemctl restart docker

重啟之后,重新拉取就可以了

[root@192 ~]# docker pull 192.168.245.133:5000/ubuntu
Using default tag: latest
latest: Pulling from ubuntu
7b1a6ab2e44d: Already exists
Digest: sha256:7cc0576c7c0ec2384de5cbf245f41567e922aab1b075f3e8ad565f508032df17
Status: Downloaded newer image for 192.168.245.133:5000/ubuntu:latest
192.168.245.133:5000/ubuntu:latest

Q: push到本地倉庫為啥使用localhost,能使用本地ip嗎?

A:當然可以使用本地ip

# 當前機器ip 192.168.245.133
[root@192 ~]# docker pull 192.168.245.133:5000/ubuntu:latest
Error response from daemon: Get https://192.168.245.133:5000/v2/: http: server gave HTTP response to HTTPS client

可以發(fā)現(xiàn)直接push會報錯,報錯跟上面的報錯內容一樣

此時會把本機的ip地址當成不安全的ip,所以push不上去,配置下,允許本機不安全的ip注冊

配置方式跟上面一樣,將本機的注冊地址加到insecure-registries 配置里面即可

{
"insecure-registries":["192.168.245.133:5000"],
"registry-mirrors": ["https://9fgss2yh.mirror.aliyuncs.com"]
}

然后重啟docker

[root@192 ~]# docker pull 192.168.245.133:5000/ubuntu:latest
latest: Pulling from ubuntu
Digest: sha256:7cc0576c7c0ec2384de5cbf245f41567e922aab1b075f3e8ad565f508032df17
Status: Downloaded newer image for 192.168.245.133:5000/ubuntu:latest

此時就push成功了

運行 docker-registry-web 鏡像

可參考:https://hub.docker.com/r/hyper/docker-registry-web

$ docker run -it -p 5001:8080 --name registry-web -d --restart always --link registry -e REGISTRY_URL=http://registry:5000/v2 -e REGISTRY_NAME=localhost:5000 hyper/docker-registry-web

然后訪問5001端口:http://192.168.245.133:5001/

1999224-20220925113643860-1213945951.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容