Openshift Registry Setup
Setting up and Accessing the Openshift Registry#
Log in to Openshift.
Find the ip address of the registry:
Apparently you get it with defaults:
oc get svc -n default | grep registry
If you explicitly enable it you get it without defaults:
$ oc adm registry
--> Creating registry registry ...
serviceaccount "registry" created
clusterrolebinding.authorization.openshift.io "registry-registry-role" created
deploymentconfig.apps.openshift.io "docker-registry" created
service "docker-registry" created
--> Success
$ oc get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
docker-registry ClusterIP 172.30.154.81 <none> 5000/TCP 18m
You can also get it with:
oc get svc/docker-registry -o yaml | grep clusterIP:
clusterIP: 172.30.154.81
Openshift works on routes so it had actually set everything up for me, and you can use the frontend for it.
Pushing an Image to the registry#
Ensure you have https
it is at the correct TLS version 1.2+
Get your token (assuming you have logged into the cli)
oc whoami -t
Log into the registry using your token
docker login -u <username> -p <token_value> <registry_ip>:<port>
Tag the container:
A fully qualified docker image name should conform to the following format:
<registry>/<repo>/<image>:<tag>
When mapping to OpenShift:
<registry>/<project>/<imagestream>:<tag>
docker commit c16378f943fe my-api
docker tag my-api registry.example.co.za:5000/my-project/my-api-image
Tag the remote repo in the image
docker tag my-api registry.example.co.za:5000/my-project/my-api-image
Push the image to openshift
docker push registry.example.co.za:5000/my-project/my-api-image
Important to note that
my-project
need not be created already
Key here is if you are using the openshift docker repo - you need to follow the specifications of that repo.
For example the default docker repo does not require the my-project
part.
oc new-project <my-project>
It seems like the project needs to exist