Philip Leaper
Philip Leaper

Reputation: 43

expose Openshift Online docker registry

I am looking to push a custom docker image to OpenShift Online 3 to run container instances there. I have seen many instructions on forums / blogs about how to do this, but the first part of the process seems to be eluding me.

This is one of the references I'm using: link

I log in using the oc command:

oc login https://api.starter-us-west-2.openshift.com --token=xxxxxxx

This gets me in and I can run the command to return the running services (one of which should be the docker instance):

oc get svc

But the response I get is simply:

NAME         CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
test-phil4   172.30.217.192   <none>        8080/TCP   13h

I was expecting to see lines for a docker instance that I could connect to. I think I need to 'expose' this, the command should be:

oc expose service docker-registry

but without seeing the service there is the list of services, I'm not sure how I can do that - and the result is - predictably:

error: services "docker-registry" not found

I feel like this is to do with the permissions on my user - I have currently granted my user 'image-pusher', 'image-builder', 'registry-admin' and 'cluster-status'. There are many more options, most of which I don't seem to be able to apply.

Perhaps this is not possible with the free-tier, or perhaps not available within the online version at all? Would anyone know how to go about connecting my existing docker repo to the OpenShift repo I'm connected to and uploading my custom images?

Thanks, Phil

Upvotes: 4

Views: 699

Answers (1)

Will Gordon
Will Gordon

Reputation: 3573

OpenShift Online clusters have their registry exposed at registry.<cluster-id>.openshift.com. So, for your example, to login to the registry for starter-us-west-2, after logging in to the cluster, you would run

docker login registry.starter-us-west-2.openshift.com -u $(oc whoami) -p $(oc whoami -t)

You can then push and pull from your project with

docker push registry.<cluster-id>.openshift.com/<project_name>/<image-name>:<image-tag>
docker pull registry.<cluster-id>.openshift.com/<project_name>/<image-name>:<image-tag>

Note: to docker push you have to have already tagged your local image as registry.<cluster-id>.openshift.com/<project_name>/<image-name>:<image-tag>

Upvotes: 5

Related Questions