Docker 之十六搭建私有仓库管理系统 Harbor
相关站点
Harbor 介绍
Harbor 是 VMware 公司开源的一个用于存储和分发 Docker 镜像的企业级 Registry 服务器,以 Docker 开源的 Registry 为基础,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源 Docker Distribution。作为一个企业级私有 Registry 服务器,Harbor 提供了更好的性能和安全,提升用户使用 Registry 构建和运行环境传输镜像的效率。Harbor 支持安装在多个 Registry 节点的镜像资源复制,镜像全部保存在私有 Registry 中,确保数据和知识产权在公司内部网络中管控。另外,Harbor 也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。
Harbor 特性
- 基于角色的访问控制(Role Based Access Control)
- 基于策略的镜像复制(Policy based image replication)
- 镜像的漏洞扫描(Vulnerability Scanning)
- AD/LDAP 集成(LDAP/AD support)
- 镜像的删除和空间清理(Image deletion & garbage collection)
- 友好的管理 UI(Graphical user portal)
- 审计日志(Audit logging)
- RESTful API
- 部署简单(Easy deployment)
Docker 之十五 Docker 私有仓库搭建与使用实战
创建 Docker 私有仓库
1 | # 下载Docker官方的registry镜像 |
查看私有仓库列表
1 | # 使用命令查看私有仓库列表,默认值为:{"repositories":[]} |
Debian 安装 Apache 与 Subversion
前言
通过 Apache、Subversion 搭建 SVN 服务器,实现使用 HTTP、SVN 协议访问 SVN 仓库,并进行细粒度的权限控制,本教程适用于 Debian/Ubuntu 系统。
系统环境
1 | # uname -a |
安装软件
1 | # 更新软件索引 |
Jenkins 入门教程之三 Jenkins 与 SVN 持续集成实战
下面的实战内容是在上篇内容的基础上进行操作的,为了保证连贯性,建议先将上篇的操作步骤执行完再阅读本篇内容。
通过 Eclipse 创建基于 Maven 的 SpringBoot Web 项目,用于测试 Maven 构建项目
创建 Maven 项目的时候,Archetype 选择”maven-archetype-quickstart”,此 SpringBoot Web 项目不需要 web.xml,只需在 pom.xml 配置文件里指定 packaging 为 war 类型即可。项目内容很简单,访问 JSP 页面直接输出字符串 “hello Jim”。项目源码下载链接已经给出,下载解压后直接导入项目到 Eclipse,执行”spring-boot:run” 命令即可运行项目,浏览器输入以下地址验证是否运行正常:http://127.0.0.1:8080/demo/hello
,点击下载完整的代码 、点击下载 SHA256 校验文件。
Centos7 安装图片处理软件 GIMP
系统环境
1 | CentOS Linux release 7.6.1810 (Core) |
GIMP 安装
GIMP 算得上是 Linux 系统下的 Photoshop,基于 GTK 编写的图像编辑处理软件,功能非常强大。
1 | # 安装EPEL源 |
Tomcat 常用配置详解
Tomcat8 配置管理用户
1 | # 编辑Tomcat8对应的配置文件,在<tomcat-users>标签内添加以下内容,配置Tomcat的管理用户 |
Docker 之十四 Docker 四大网络模式
Docker 四大网络模式
桥接模式、主机模式、容器模式、无网络模式
Docker 四大网络模式之一(bridge)
该模式是 Docker 的默认设置,Docker 守护进程创建了一个虚拟以太网桥 docker0,附加在其上的任何网卡之间都能自动转发数据包。默认情况下,守护进程会创建一对对等接口,将其中一个接口设置为容器的 eth0 接口,另一个接口放置在宿主机的命名空间中,从而将宿主机上的所有容器都连接到这个内部网络上。守护进程还会从网桥的私有地址空间中分配一个 IP 地址和子网给该容器。注意启动容器的时候需要指定 - p(固定端口分配) 或者 -P(动态端口分配)参数来暴露端口,否则 IP 数据包就不能从宿主机之外路由到容器中。
1 | # docker run -d -p 8888:8080 --net=bridge --name=tomcat8 tomcat:8 |
Docker 之十三资源隔离与资源限制介绍
虚拟机与容器底层实现的对比
虚拟机与容器的底层实现原理是不同的,正如上图片的对比。虚拟机实现资源隔离的方法是利用一个独立的 Guest OS,并利用 Hypervisor 虚拟化 CPU、内存、IO 设备等实现的。例如,为了虚拟化内存,Hypervisor 会创建一个 shadow page table,正常情况下,一个 page table 可以用来实现从虚拟内存到物理内存的翻译。相比虚拟机实现资源和环境隔离的方案,Docker 就显得简练很多,它不像虚拟机一样重新加载一个操作系统内核,引导、加载操作系统内核是一个比较耗时而又消耗资源的过程,Docker 是利用 Linux 内核特性(LXC)实现的隔离,运行容器的速度几乎等同于直接启动进程。