Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

FinVolution/dockeryard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

20 Commits

Repository files navigation

Dockeryard

一:简介

1.1概述

dockeryard是一个镜像仓库管理系统,分为两部分:admin作为镜像的管理,proxy是http拦截器(可对镜像上传下载过程做安全审计)

1.2特性

1.管理员:获取环境列表并进行编辑、查看组织列表、查看用户列表

2.镜像管理:仓库列表、镜像列表(查看对应服务站点上传的镜像)

3.数据看板:查看镜像的操作日志

4.拦截http请求,获取镜像上传过程中的拉取和上传,并进行数据库层面的审计

5.根据不同环境配置的策略,进行镜像的自动清理

架构图: avatar

环境准备

jdk 1.8、mysql5.7、node 12.16

二:部署

1 core

该目录为一些基础的依赖,需要提前在本地安装 进入该目录,执行命令

mvn install

2 front

dockeryard的前端项目,前端采用的vue实现的,需要本地安装npm,想关安装请参考官方文档

npm install
npm run dev

注意:为了更好的完成前后端部署,可以将前端文件打包到admin的resources下的static目录,可以在front目录直接执行命令

npm run build

该命令可以执行将前端部署文件打包进admin的文件夹

3 admin

该项目为镜像管理系统,提供了镜像的查看,清理等功能

编译和运行依赖的组件:JDK 8 + Maven 3.3.9 + MySQL5.7

分别把目录sql中的ppdai_dockeryard.sql导入到MySQL中 修改src/main/resources/application.properties中的数据库配置(spring.datasource.url, spring.datasource.username, spring.datasource.password)为正确值 执行如下命令打包

mvn clean install -DskipTests=true

生成docker client

cd target/generated-sources/swagger/
mvn clean install -DskipTests=true

运行命令启动服务

java -jar admin-0.0.1-SNAPSHOT.jar

4 proxy

该项目,需要和docker registry一起使用,拦截push 和pull相关的请求,并对请求进行请求审计,对用户进行权限校验,镜像审计等功能 执行打包命令:

mvn clean package -DskipTests=true

运行命令启动服务

java -jar proxy-0.0.1-SNAPSHOT.jar

5 docker registry安装部署

1.安装docker

省略

2.拉取镜像

docker pull registry

3.运行(并指定5000端口)

mkdir /Users/chenlang/docker/registry
docker run -d -p 5000:5000 -v /Users/chenlang/docker/registry:/var/lib/registry registry

4.更改配置

因为后续我们需要对上传到仓库的进行审计和其它操作,需要将请求经过proxy服务转发,所以需要修改配置daemon.json,作者使用的mac,可以直接修改vim ~/.docker/daemon.json

vim ~/.docker/daemon.json 

内容:

{
 "insecure-registries" : [
 "localhost:5050"
 ],
 "debug" : true,
 "experimental" : false,
 "registry-mirrors" : [
 "http://${ip}:5050"
 ]
}

修改完后重启docker,并重启docker registry

5.打包镜像并推送

一:运行proxy并设置好相关配置
# 拦截的端口好
proxyPort=5050
#docker registry
dockerRegistryHost=localhost
dockerRegistryPort=5000
responseDomainName=localhost:5000
二:打镜像并推送
${ip}为proxy服务的具体ip地址
docker pull hello-world
docker tag hello-world:latest ${ip}:5050/hello-world:latest
docker push ${ip}:5050/hello-world:latest

About

容器云镜像仓库

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

AltStyle によって変換されたページ (->オリジナル) /