docker registry(私库)搭建,使用,WEB可视化管理部署

时间:2022-12-15 18:12:15

Docker Registry 是Docker官方一个镜像,可以用来储存和分发Docker镜像。目前比较流行的两个镜像私库是Docker Registry ,HarBor 其中HarBor最合适企业级应用,提供良好的WEB界面进行管理。

Docker Registry搭建

本文主要介绍Docker Registry搭建的方式,官网地址:registry - Official Image | Docker Hub

拉取镜像:

docker pull registry

运行镜像:

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

防火墙需要开放5000端口,或者直接关闭防火墙

systemctl status firewalld.service   #查看防火墙状态
systemctl stop firewalld.service     #暂停防火墙
systemctl disable firewalld.service  #永久关闭防火墙

检查镜像是否运行成功:docker ps,镜像成功之后私库就算搭建成功了。

docker registry(私库)搭建,使用,WEB可视化管理部署

推送代码

方法一:VS2019发布可以一步直接推送到私库

docker registry(私库)搭建,使用,WEB可视化管理部署

docker registry(私库)搭建,使用,WEB可视化管理部署

docker registry(私库)搭建,使用,WEB可视化管理部署

每次点击发布就会自动推送到私库,相当方便,背后原理和手动推送没有区别,只是VS2019默默地把我们做了工作:创建镜像,给镜像打标签,推送镜像。通过Docker Desktop 工具我们可以查看到本地镜像:

docker registry(私库)搭建,使用,WEB可视化管理部署

方法二:手动推送

手动推送需要我们先给镜像打标签,然后推送镜像。

docker image tag webapplication4 192.168.3.35:5000/webapplication4:latest
docker push 192.168.3.35:5000/webapplication4:latest

查看己推送的镜像,Docker Registry支持HTTP请求API获取相关数据,最好是搭建WEB可视化界面管理,下文有讲到。

docker registry(私库)搭建,使用,WEB可视化管理部署

注意事项:docker 默认要求HTTPS连接,如果私库不搭建HTTPS,那么客户端就需要配置docker的配置文件添加信任源。服务器端(即docker私库)不需要配置。

{ 
  "insecure-registries":["192.168.3.35:5000"]
}

Htpasswd

一般情况下Docker Registry是充许*访问,作为公司或个人私库自然是需要进行安全设置,我们可以通过htpasswd实现登陆限制。

安装htpasswd

yum -y install httpd

在宿主机上创建文件夹来储存htpasswd的账号或密码

mkdir /usr/local/auth

生成密码

htpasswd -Bbn admin 123456 > /usr/local/auth/passwd

需要重启容器,配置htpasswd

docker run  
-p 5000:5000   
--restart=always  
--name registry  
-v /usr/local/auth:/auth   
-e REGISTRY_AUTH=htpasswd   
-e REGISTRY_AUTH_HTPASSWD_REALM=Registry_Realm   
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/passwd 
-d registry:2

重新请求API接口时,己提示需要认证。

docker registry(私库)搭建,使用,WEB可视化管理部署

搭建可视化WEB界面

私库可以通过API进行交互,这样交互会很麻烦,提供可视化界面会比较容易管理一些,docker-registry-browser 管理界面提供一些基础功能,简单易用。

dokcer Hub地址:klausmeyer/docker-registry-browser - Docker Image | Docker Hub

gitHub地址:docker-registry-browser/README.md at master · klausmeyer/docker-registry-browser · GitHub

在私库服务器运行镜像:

docker run 
--name registry-browser
-p 8080:8080 
--restart=always 
--link registry 
-e DOCKER_REGISTRY_URL=http://registry:5000/v2 
-d klausmeyer/docker-registry-browser

 注意事项:docker-registry-browser是镜像,当运行docker-registry-browser的时候会新建一套虚拟环境,所以默认配置下docker-registry-browser是管理不到docker私库。需要特别配置两个参数:

--link registry

-e DOCKER_REGISTRY_URL=http://registry:5000/v2

对应的是私库的容器名称和请求API地址,默认启动之后,访问就提示需要账号,密码。

docker registry(私库)搭建,使用,WEB可视化管理部署

docker registry(私库)搭建,使用,WEB可视化管理部署

Docker Registry 私库流程大概如此,感兴趣的朋友关注一下~