内容正文:
课程名称
第8章 私有仓库
计划学时
2学时
内容分析
本章主要介绍私有仓库、搭建私有仓库、使用TLS证书、Nginx反向代理仓库、可视化私有仓库
教学目标
与教学要求
要求学生了解Docker私有仓库、部署私有仓库、熟练使用私有仓库、通过Web界面管理仓库、掌握常用的几种第三方私有仓库的用法
教学重点
搭建私有仓库、使用TLS证书、Nginx反向代理仓库、可视化私有仓库
教学难点
搭建私有仓库、使用TLS证书、Nginx反向代理仓库、可视化私有仓库
教学方式
课堂讲解及ppt演示
教
学
过
程
第一课时
(私有仓库、搭建私有仓库、使用TLS证书)
了解容器知识
1.介绍本书,引出本课时的主题
Docker仓库用于保存Docker镜像,分为公有仓库与私有仓库。公有仓库就是Docker Hub一类供所有Docker用户使用的Docker仓库。私有仓库是指由个人或企业搭建的Docker仓库,供其自身使用,是非公开的。本章将对Docker私有仓库及其相关内容进行详解。
2.明确学习目标
(1) 能够了解私有仓库
(2) 能够了解环境部署
(3) 能够掌握自建仓库
(4) 能够掌握生成证书
知识讲解
· 私有仓库
Docker镜像通常保存在Docker Hub,Docker Hub是目前最大的Docker镜像公有仓库,由Docker官方人员进行维护,其中的镜像可供所有用户下载使用。在生产环境中,通常公司会构建一些符合公司业务需求的镜像,这些镜像因为是商业机密而不得上传至Docker Hub,只能供公司内部人员使用。此时就需要在内网搭建一个Docker私有仓库,来存储公司内部的镜像,并确保内部人员可以不受网络限制,快速地拉取或上传镜像。镜像为Docker容器的运行基础,容器是镜像的具体运行实例,镜像仓库为镜像提供了可靠的存储空间,镜像可以从公有或私有仓库拉取,如图所示。
· 环境部署
私有镜像仓库在企业中占有较高的使用率,因此私有镜像仓库搭建技术显得尤为重要。下面通过示例讲述私有镜像仓库的搭建方式与过程。
本节需要用到两台服务器,一个作为私有镜像仓库,另一个作为使用私有镜像仓库的Docker客户机。此处以CentOS系统为例,安装并启动Docker,服务器信息如表所示。
服务器名称
IP
功能
Docker-1
192.168.56.146
Docker私有仓库
Docker-2
192.168.56.147
使用Docker仓库的客户机
· 自建仓库
Docker Hub为用户提供了完美的仓库镜像,本示例将使用Docker Hub中的仓库镜像运行私有仓库。首先从Docker Hub中拉取仓库镜像,示例代码如下:
以上示例成功拉取了Docker仓库的镜像。
下面将仓库镜像运行成为容器,示例代码如下:
以上示例将仓库镜像运行成了仓库容器,并映射了宿主机的5000端口,供Docker镜像的上传与下载。其中,--restart=always表示容器停止时自动重启,这条参数常用于生产环境中。
下面将镜像上传至刚刚创建的镜像仓库中,示例代码如下:
以上示例拉取了一个BusyBox镜像,并为其添加了tag标识,在尝试将镜像推送至私有仓库时,发生了报错。
这是因为Docker默认支持HTTPS(Hyper Text Transfer Protocol Secure,安全超文本传输协议),命令行中使用的是HTTP(Hyper Text Transfer Protocol,超文本传输协议)。修改Docker的启动参数,使之允许以HTTP工作,示例代码如下:
以上示例修改了Docker配置文件中的启动参数,并重启Docker。
下面接着尝试将镜像推送至私有仓库,示例代码如下:
以上示例成功将镜像推送到私有仓库。
下面查看私有仓库中的镜像,并拉取其中的镜像,示例代码参考教材8.2.2节。
以上示例删除了本地原来的镜像,并成功从私有仓库拉取了镜像。因为使用的是内网环境,所以下载速度很快。
如果想在其他宿主机上使用该仓库,只需要修改配置文件,重启Docker服务。下面通过另外一台服务器拉取私有仓库中的镜像,先修改Docker配置文件,再重新读取并重新启动Docker,最后拉取镜像,示例代码如下:
以上示例成功从私有仓库下载了BusyBox镜像。
如此,一个简单的私有仓库就搭建好了,但安全系数较低,镜像保存在容器中,容器被删除后,私有仓库以及仓库中的镜像也会一并删除,数据无法保存。
· 生成证书
想让仓库对外提供服务,就需要配置用户认可的TLS(Transport Layer Security,传输层安全)证书,否则仓库将无法正常使用。目前很多代理商可以提供权威的证书,用户可以自行选择。
下面演示