Registry私有仓库可视化
一、简介
私有 Docker Registry 通常用于企业内部或特定团队中存储和管理 Docker 镜像。随着项目的发展,镜像数量不断增加,管理起来变得越来越复杂。使用可视化的工具可以帮助管理员和开发者更直观地查看和管理这些镜像,从而提高工作效率。
私有仓库可视化是指通过图形用户界面(GUI)来管理和展示私有 Docker Registry 中存储的镜像及相关信息。
二、节点规划
IP | 主机名 | 节点 |
192.168.*.* | Localhost | Localhost |
三、服务实施
3.1、安装docker
上传docker安装包和docker-compose文件以及docker镜像至虚拟机/root下。
其他安装docker方法也行。
注意:关闭防火墙
[root@localhost ~]# tar -zxvf docker-24.0.5.tgz
[root@localhost ~]# chmod 755 -R docker
[root@localhost ~]# cp docker/* /usr/bin/
[root@localhost ~]# vi /etc/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
ExecStartPost=/usr/sbin/iptables -P FORWARD ACCEPT
Restart=always
TimeoutStartSec=0
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Delegate=yes
KillMode=process
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
解析:
Docker 服务的 systemd 单元文件配置,文件定义了如何启动 Docker 服务。
启动服务:
[root@localhost ~]# chmod +x /etc/systemd/system/docker.service
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl enable docker.service
[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl status docker
3.2、安装registry私有仓库
官方在Docker hub上提供了Registry的镜像,可以直接使用该Registry镜像来构建一个容器,搭建用户自己的私有仓库服务。
具体命令如下:
[root@master ~]# docker pull registry
部署私有仓库:
[root@master ~]# docker run -d -p 5000:5000 --restart=always --name registry registry:latest
解析:
- 创建一个Registry容器来运行Registry服务;
- -p:端口映射(前面是宿主机端口:后面是容器暴露的端口);
- --restart=always:随docker服务的启动而启动;
- --name=registry:指定容器名为registry!
- 添加环境变量REGISTRY_STORAGE_DELETE_ENABLED=true开启删除镜像的功能,默认是不能删除镜像的。
3.3、配置推送
修改Docker Daemon的配置文件,文件位置为/etc/docker/daemon.json,由于Docker默认使用HTTPS推送镜像,而我们的镜像仓库没有支持,所以需要添加如下配置,改为使用HTTP推送;
修改:
{
"insecure-registries": ["192.168.*.*:5000"]
}
解析:
- 告诉 Docker 引擎信任一个特定的未加密(非 TLS)Docker Registry。
- 默认情况下,Docker 要求 Docker Registry 使用 TLS 加密(即 HTTPS)。如果 Docker Registry 仅支持 HTTP 协议(未加密),则需要通过这个配置项告诉 Docker 引擎信任这些服务器。
重启docker:
systemctl daemon-reload && systemctl restart docker
3.4、安装可视化界面
klausmeyer/docker-registry-browser 是一个用于浏览和管理 Docker Registry 的 Web 界面工具。
拉取私有仓库的可视化镜像:
[root@Tomcat ~]# docker pull klausmeyer/docker-registry-browser
部署服务:
[root@Tomcat ~]# SECRET_KEY=$(openssl rand -hex 64)
[root@Tomcat ~]# echo $SECRET_KEY
3199f8e2a867ac5de2f8aaaa4a7dc4326d3b7e58e571a0b2647b8ebb367b96dee8e6f7bd14da6fd6055d5193f0a6a42b04f068a160e143a92bd9ac56571721b4
[root@Tomcat ~]# docker run --name registry-browser -p 8080:8080 --restart=always \
> -e DOCKER_REGISTRY_URL=http://192.168.*.*:5000/v2 \
> -e SECRET_KEY_BASE=$SECRET_KEY \
> -d klausmeyer/docker-registry-browser
ecfa17b080c028cd6734a4722dd26c30eb7e137983fb8fadeb0e2a1799601013
解析:
- SECRET_KEY_BASE:这是一个用于加密的密钥,用于保证应用的安全性。
- SECRET_KEY=$(openssl rand -hex 64):生成了一个 64 字符的十六进制字符串,并将其赋值给环境变量 SECRET_KEY
- --restart=always:设置容器重启策略为总是重启。
- -e DOCKER_REGISTRY_URL=http://192.168.104.80:5000/v2:设置环境变量 DOCKER_REGISTRY_URL 为 Docker Registry 的 URL。
- -e SECRET_KEY_BASE=$SECRET_KEY:设置环境变量 SECRET_KEY_BASE 为您刚才生成的密钥。