1 系统要求
1.1 硬件和软件要求
- 成为UCP管理的工作节点。
- 固定的主机名。
1.2 最低配置
- 8G RAM
- 2核 CPU
- 10GB 可用磁盘空间
1.3 推荐配置
- 16GB RAM
- 4个vCPU
- 25-100GB 可用磁盘空间
1.4 使用的端口
在节点上安装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 node01 \ # 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,因为dns无法解析。
2.3 检查DTR是否运行
在浏览器中,导航到UCP Web UI,然后导航到Stacks菜单(新版本的Stacks成为二级菜单,放在了一级菜单Shared Resource下面)。可以看到DTR在右侧列表中。
还可以访问DTR Web UI,在浏览器中,导航至您安装DTR的地址。
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
$ sudo 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
$ sudo update-ca-trust
# Restart the Docker daemon
$ sudo /bin/systemctl restart docker.service
b. 卸载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个字符的图像名称。这包括域名,组织和存储库名称。创建存储库时,确保其全名少于255个字符。
3.2 推送和拉取镜像
Docker Trusted Registry交互命令:
- docker login <dtr-url> 在DTR上验证您的身份
- docker pull <image>:<tag> 从DTR中拉取图像
- docker push <image>:<tag> 将图像推送到DTR
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