本系列文章演示如何搭建一个mini的云平台和DevOps实践环境。

基于这套实践环境,可以部署微服务架构的应用栈,演练提升DevOps实践能力。

1 系统要求

1.1 硬件和软件要求

  • 成为UCP管理的工作节点。
  • 固定的主机名。

1.2 最低配置

  • 8G RAM
  • 2核 CPU
  • 10GB 可用磁盘空间

1.3 推荐配置

  • 16GB RAM
  • 4个vCPU
  • 25-100GB 可用磁盘空间

1.4 操作系统支持

  • CentOS 7.4 (本文中默认使用的操作系统)
  • Red Hat Enterprise Linux 7.0, 7.1, 7.2, or 7.3
  • Ubuntu 14.04 LTS or 16.04 LTS
  • SUSE Linux Enterprise 12

1.5 其它

  • 同步时区和时间
  • 一致的主机名策略
  • 内部的DNS

1.6 版本适配

  • docker 17.06.2.ee.8+
  • DTR 2.5.3 : UCP 3.0.2
  • DTR 2.5.0 : UCP 3.0.0

1.7 网络要求

安装过程中DTR节点需要能下载docker官网的资源,如果不能访问,可通过其它机器下载软件包,然后执行离线安装。

如何离线安装DTR,请参考这里

1.8 使用的端口

在节点上安装DTR时,确保在该节点上打开了以下端口:

Direction Port Purpose
in 80 / TCP Web应用程序和API客户端访问DTR。
in 443 / TCP Web应用程序和API客户端访问DTR。

这些端口在安装DTR时是可配置的。

2 安装DTR

2.1 验证系统要求

安装DTR的第一步是确保具备DTR安装运行的系统要求。

2.2 安装DTR

a, 在UCP Web UI。导航到管理员设置页面,在左侧菜单中,点击Docker Trusted Registry

b, 配置完所有选项后,将看到一个可用于安装DTR的命令行代码:
# Pull the latest version of DTR
$ docker pull docker/dtr:2.5.3 # Install DTR
$ docker run -it --rmdocker/dtr:2.5.3 install \
--dtr-external-url [https://dtr.example.org] \ # 访问dtr web ui的地址
--ucp-node node02 \# ucp安装的节点主机名
--ucp-username admin\
--ucp-insecure-tls \
--ucp-url [https://ucp.example.org] # ucp的域名
c, 通过SSH进入UCP的一个Worker节点并从那里运行DTR安装命令。

注意:

  • 如果dns服务器中没有配置解析, --dtr-external-url 和--ucp-url 不能用hostname。

2.3 检查DTR是否运行

在UCP Web UI,导航到共享的资源下的应用栈页面:

或者通过浏览器,访问DTR Web UI:

使用与UCP相同的管理员账号登录。

2.4 配置安全访问DTR

如果其它节点要从DTR服务器上pull或push镜像文件,需要先在其它节点(例如UCP节点)上获取并信任DTR的CA,否则会报如下错误:

$ docker login [dtr.example.org](http://dtr.example.org/)
x509: certificate signed by unknown authority # 创建应用栈时报错
dial tcp: lookup [dtr.example.org](http://dtr.example.org/) on 183.60.83.19:53: no such host

在UCP节点和所有要请求DTR的节点上,获取并信任DTR的CA:

# Download the DTR CA certificate
$ curl -k https://<dtr-domain-name>/ca -o /etc/pki/ca-trust/source/anchors/<dtr-domain-name>.crt # Refresh the list of certificates to trust
$ update-ca-trust # Restart the Docker daemon
$ systemctl restart docker.service

2.5 其它DTR命令

a, 升级DTR
$ docker pull docker/dtr:2.5.3

$ docker run -it --rm \
docker/dtr:2.5.3 upgrade \
--ucp-insecure-tls
b, 重新配置
$ docker run -it --rm docker/dtr:2.5.3 reconfigure [command options]
c, 卸载DTR
$ docker run -it --rm \
docker/dtr:2.5.3 destroy \
--ucp-insecure-tls

3 管理镜像

3.1 创建镜像存储库

a, 要创建新的镜像存储库,在DTR Web UI首页,然后单击新建存储库按钮。

b, 为存储库添加名称和描述,并选择您的存储库是公有还是私有:
  • 公共存储库对所有用户都是可见的,但只能被授予写入权限的用户更改。
  • 专用存储库只能被授予该存储库权限的用户看到。

c, 单击保存创建存储库。

注意:

  • 在DTR中存储库的URL格式为 <dtr-domain-name>/<user-or-org>/<repository-name><user-or-org>是用户或者组织的名称,可以在DTR Web UI中创建;
  • DTR只允许具有255个字符的图像名称。这包括域名,组织和存储库名称。

3.2 推送和拉取镜像

Docker Trusted Registry交互命令:

  • 在DTR上验证身份 docker login <dtr-url>
  • 从DTR中拉取图像 docker pull <image>:<tag>
  • 将图像推送到DTR docker push <image>:<tag>
a, 拉取镜像
$ docker login dtr.example.org
$ docker pull dtr.example.org/common/mysql:5 # common是组织或者用户名, mysql是存储库名
b, 推送镜像
$ docker push dtr.example.org/common/mysql:5
c, 标记镜像
# Pull from Docker Hub the latest tag of the mysql image
$ docker pull mysql:5.1.7 # Tag the mysql:5.1.7 image with the full repository namewe've created in DTR
$ docker tag mysql:5.1.7 dtr.example.org/common/mysql:5

系列文章

Docker Data Center系列(一)- 快速搭建云原生架构的实践环境

Docker Data Center系列(二)- UCP安装指南

Docker Data Center系列(三)- DTR安装指南

Docker Data Center系列(四)- 离线安装UCP和DTR

Docker Data Center系列(五)- 使用自定义的TLS安全认证

Docker Data Center系列(三)- DTR安装指南的更多相关文章

  1. Docker Data Center系列(二)- UCP安装指南

    本系列文章演示如何搭建一个mini的云平台和DevOps实践环境. 基于这套实践环境,可以部署微服务架构的应用栈,演练提升DevOps实践能力. 1 系统要求 1.1 硬件和软件要求 Linux内核版 ...

  2. Docker Data Center系列(四)- 离线安装UCP和DTR

    本系列文章演示如何搭建一个mini的云平台和DevOps实践环境. 基于这套实践环境,可以部署微服务架构的应用栈,演练提升DevOps实践能力. 1 离线安装UCP 1.1 可用版本 Version ...

  3. Docker Data Center系列(一)- 快速搭建云原生架构的实践环境

    本系列文章演示如何快速搭建一个简单的云原生架构的实践环境. 基于这个基础架构,可以持续部署微服务架构的应用栈,演练敏捷开发过程,提升DevOps实践能力. 1 整体规划 1.1 拓扑架构 1.2 基础 ...

  4. Docker Data Center系列(五)- 使用自定义的TLS安全认证

    本系列文章演示如何搭建一个mini的云平台和DevOps实践环境. 基于这套实践环境,可以部署微服务架构的应用栈,演练提升DevOps实践能力. 1 名词说明 CSR: Certificate Sig ...

  5. Docker & k8s 系列三:在k8s中部署单个服务实例

    本章将会讲解: pod的概念,以及如何向k8s中部署一个单体应用实例. 在上面的篇幅中,我们了解了docker,并制作.运行了docker镜像,然后将镜像发布至中央仓库了.然后又搭建了本机的k8s环境 ...

  6. Docker入门教程(三)Dockerfile

    Docker入门教程(三)Dockerfile [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第三篇,介绍了Dockerfile的语法,DockerOn ...

  7. Android高效率编码-第三方SDK详解系列(三)——JPush推送牵扯出来的江湖恩怨,XMPP实现推送,自定义客户端推送

    Android高效率编码-第三方SDK详解系列(三)--JPush推送牵扯出来的江湖恩怨,XMPP实现推送,自定义客户端推送 很久没有更新第三方SDK这个系列了,所以更新一下这几天工作中使用到的推送, ...

  8. DocX开源WORD操作组件的学习系列三

    DocX学习系列 DocX开源WORD操作组件的学习系列一 : http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_sharp_001_docx1.htm ...

  9. Android开发教程 - 使用Data Binding(三)在Activity中的使用

    本系列目录 使用Data Binding(一)介绍 使用Data Binding(二)集成与配置 使用Data Binding(三)在Activity中的使用 使用Data Binding(四)在Fr ...

随机推荐

  1. Android--Menus

    前言 本篇博客讲解一下菜单Menu的使用.菜单在windows应用中使用十分广泛,几乎所有的windows应用都有菜单,Android中也加入了菜单的支持.从官方文档了解到,从Android3.0(A ...

  2. 第二次作业:分布式版本控制系统Git的安装与使用

    本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2103 第一个git仓库地址:https://github.com/ ...

  3. Python快速学习10: 循环的对象及设计 (生活的规律)

    前言 系列文章:[传送门] 生活逐渐规律,按时睡觉.今天写博客,明天补时间看会书.慢慢的时间很珍惜 我很喜欢! 时钟就像个循环体,我们将它融入生活. 正文 循环对象的并不是随着Python的诞生就存在 ...

  4. linux平均负载的理解及原因排查

    当系统响应缓慢时,一般会用top或uptime命令查看系统负载是否过高. 例如输入uptime命令显示如下图,其中23:47:19表示现在的时间,up 260 days,14:39表示系统运行了多久, ...

  5. Python面向对象基础:设置对象属性

    用类存储数据 类实际上就是一个数据结构,对于python而言,它是一个类似于字典的结构.当根据类创建了对象之后,这个对象就有了一个数据结构,包含一些赋值了的属性.在这一点上,它和其它语言的struct ...

  6. js模块化编程之彻底弄懂CommonJS和AMD/CMD!

    先回答我:为什么模块很重要? 答:因为有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块.但是,这样做有一个前提,那就是大家必须以同样的方式编写模块,否则你有你的写法,我有我的写 ...

  7. vs 中引用自己创建程序集出现小叹号

    出现的问题: 原因是.net frame work版本不一致 解决方法: 项目单击右键-->属性: 改为与你要引用的项目的程序集的版本一致即可

  8. C#实现给图片加边框的方法

    Bitmap bit= new Bitmap(@"" + Path);//给图片加边框 //Bitmap bit = new Bitmap(Screen.AllScreens[0] ...

  9. [android] 采用pull解析xml文件

    /***********2016年5月6日 更新**********************/ 知乎:Android 中有哪几种解析 xml 的类,官方推荐哪种 ? 以及它们的原理和区别? 刘吉财: ...

  10. PHP生成器细说

    之前写过关于生成器的文章,可能还不够详细,正好群里有朋友在讨论.觉得还是有必要再细说下,如果大家做过Python或者其他语言的,对于生成器应该不陌生.生成器是PHP 5.5.才引入的功能,也许大家觉得 ...