OpenShift:使用内部Docker注册表

时间:2020-03-21 11:42:23  来源:igfitidea点击:

OpenShift提供了一个内部容器镜像注册表,可以将其部署在OpenShift环境中以本地管理镜像。

Docker注册表管理

注册表可能是在OpenShift安装过程中自动部署的。

检查注册表服务是否已经存在:

$oc adm registry --dry-run
Docker registry "docker-registry" service exists

获取部署配置:

$oc get dc -n default
NAME

REVISION   DESIRED   CURRENT   TRIGGERED BY
docker-registry   1

2

2

config
registry-cosole   1

1

1

config
router

1

2

2

config

获取注册表的图像:

$oc describe dc/docker-registry -n default | grep Image

Image:	registry.lab.example.com/openshift3/ose-docker-registry:v3.9.14

删除Docker注册表

由于我们知道创建注册表的镜像,因此我们可以轻松地重新创建它。

删除注册表及其服务帐户:

$oc delete all -l docker-registry -n default
$oc delete serviceaccounts/registry -n default
$oc delete clusterrolebindings/registry-registry-role -n default

从镜像创建Docker注册表

使用该镜像创建一个Docker注册表:

$oc adm registry \
  --images=registry.lab.example.com/openshift3/ose-docker-registry:v3.9.14 \
  --replicas=2 \
  --selector='region=infra' \
  -n default

浏览Docker注册表

要浏览Docker注册表,我们可以安装'docker-registry-cli'脚本:

$sudo yum install python-flask python-requests git
$git clone https://github.com/vivekjuneja/docker_registry_cli
$cd docker_registry_cli

运行以下命令以将集成的Docker注册表公开给主机名intreg.lab.example.com:

$oc expose service docker-registry \
  --hostname=intreg.lab.example.com

默认情况下,该命令将创建与服务同名的路由。
请注意,我们将需要在路由上配置TLS安全性,或者在'/etc/docker/daemon.json'中允许不安全的Docker注册表。
完成后,我们可以在docker注册表中列出所有图像:

$python ./browser.py intreg.lab.example.com list all