day106 镜像仓库harbor,registry
day106 企业级镜像仓库harbor
以后你会听见很多的微服务的概念
就是一个个运行的容器称之为一个一个的微服务
1. 下载harbor的软件包,yml文件,提供给docker-compose去部署
2.获取harbor的包
2.获取harbor的包
[root@docker-200 /docker-gitlab]#cd /docker-harbor/
[root@docker-200 /docker-harbor]#
[root@docker-200 /docker-harbor]#ls
harbor-offline-installer-v1.9.0-rc1.tgz
[root@docker-200 /docker-harbor]#
[root@docker-200 /docker-harbor]#tar -zxf harbor-offline-installer-v1.9.0-rc1.tgz
3.查看解压的文件,是否要修改相关参数
[root@docker-100 harbor]# ll
total 605144
-rw-r--r-- 1 root root 619632806 Sep 4 2019 harbor.v1.9.0.tar.gz
-rw-r--r-- 1 root root 5805 Sep 4 2019 harbor.yml
-rwxr-xr-x 1 root root 5088 Sep 4 2019 install.sh
-rw-r--r-- 1 root root 11347 Sep 4 2019 LICENSE
-rwxr-xr-x 1 root root 1748 Sep 4 2019 prepare
## harbor.yml 是软件的配置文件
## 更多基于容器,k8s下的部署软件,配置文件基本都是以yaml居多
# 修改部分参数
# harbor软件运行再容器里,映射暴露给宿主机去访问
# yaml 字典语法
hostname: 10.0.0.100
harbor_admin_password: 123123
# 一键自动化安装脚本
1.检查版本
[root@docker-100 harbor]# docker-compose --version
docker-compose version 1.18.0, build 8dd22a9


修改配置,支持http的镜像仓库
[root@docker-100 harbor]# cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://42240640f9ff42f692a2468126dfdf90.mirror.swr.myhuaweicloud.com",
"https://docker.m.daocloud.io"
],
"insecure-registries":["http://10.0.0.100"]
}
[root@docker-200 /docker-harbor/harbor]#systemctl daemon-reload
[root@docker-200 /docker-harbor/harbor]#
[root@docker-200 /docker-harbor/harbor]#
[root@docker-200 /docker-harbor/harbor]#systemctl restart docker
[root@docker-200 /docker-harbor/harbor]#
[root@docker-200 /docker-harbor/harbor]#docker start `docker ps -aq`
创建私有镜像仓库

如何推送本地镜像,到企业级docker镜像仓库harbor中
一样要修改镜像tag,指定项目地址
docker tag SOURCE_IMAGE[:TAG] 10.0.0.100/linux0224/IMAGE[:TAG]
[root@docker-100 /]# docker tag t1-nginx:latest 10.0.0.100/linux0224/t1-nginx:latest
# 登录docker harbor
docker login 10.0.0.100
docker push 10.0.0.100/linux0224/IMAGE[:TAG]
# 推送镜像
[root@docker-200 /docker-harbor/harbor]#docker push 10.0.0.200/linux0224/t1-flask-redis
# 下载私有镜像
[root@docker-200 /docker-harbor/harbor]#docker run 10.0.0.200/linux0224/t1-flask-redis:latest
registry纯API的仓库
访问某个url,即可看见镜像数据信息
以及根据url,基于不通的请求方式,就可以推送数据,下载数据,比如查询数据
就是镜像信息,这就是一个API
# 官方提供啦一个镜像来搭建这个registry
docker pull registry
# 启动容器
docker run -d \
--name linux0224_registry \
--restart=always \
-p 5000:5000 \
-v /data/registry:/var/lib/registry \
registry
# 1.确保接口可以访问
[root@docker-100 docker]# curl http://10.0.0.100:5000/ -I
HTTP/1.1 200 OK
Cache-Control: no-cache
Date: Sat, 24 May 2025 14:54:05 GMT
# 2.推送本地镜像到私有registry
修改镜像tag,制定为本地私有镜像仓库api
docker tag ubuntu:latest 10.0.0.100:5000/ubuntu:latest
# 尝试推镜像
docker push 10.0.0.100:5000/ubuntu:latest
发现不行
修改docker的配置文件,加入私有registry,改为非安全模式的镜像地址
是因为docker一般是以https推送的
{
"registry-mirrors": ["https://42240640f9ff42f692a2468126dfdf90.mirror.swr.myhuaweicloud.com",
"https://docker.m.daocloud.io" ],
"insecure-registries":["http://10.0.0.100:5000",]
}
重启docker
systemctl daemon-reload
systemctl restart docker
# 在次推送镜像
[root@docker-100 docker]#
[root@docker-100 docker]# docker push 10.0.0.100:5000/ubuntu:latest
The push refers to repository [10.0.0.100:5000/ubuntu]
8901a649dd5a: Pushed
latest: digest: sha256:a2d4081f8adf7293bc61b3b9b5d4fc8b982ddbbca844224535426eb85d3871a9 size: 529
# 查询私有仓库的api的接口
[root@docker-100 docker]# curl 10.0.0.100:5000/v2/_catalog
{"repositories":["ubuntu"]}
# 下载该镜像
docker pull 10.0.0.100:5000/ubuntu
# 利用ubuntu打印一句话
[root@docker-100 docker]# docker run 10.0.0.100:5000/ubuntu echo"加油各位,大家都是好样的,为了最后的胜利,加油没有说明可以阻挡我们 的脚步。"
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "echo加油各位,大家都是好样的,为了最后的胜利,加油没有说明可以阻挡我们的脚步。": executable file not found in $PATH: unknown.
[root@docker-100 docker]#
官方提供registry仓库的API接口规则文档
https://docs.docker.com/registry/spec/api/#listing-repositories
浙公网安备 33010602011771号