運行 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