Say that you have followed the instructions in import.md and now want to update a deployment configuration or a running pod so that it uses that image.
First list the image of intrest:
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
danbev/es latest 59d06a20aff1 17 hours ago 415.9 MB
First tag the image. Add the namespace/project name after the registry ip:port. For example, I'm going to add the image to the mbaas-logging
namespace/project
$ docker tag 59d06a20aff1 172.30.198.116:5000/mbaas-logging/danbev-es
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
172.30.198.116:5000/mbaas-logging/danbev-es latest 59d06a20aff1 17 hours ago 415.9 MB
danbev/es latest 59d06a20aff1 17 hours ago 415.9 MB
Now, push the tagged image into the private repository:
$ docker push 172.30.198.116:5000/mbaas-logging/danbev-es
The push refers to a repository [172.30.198.116:5000/mbaas-logging/danbev-es] (len: 1)
59d06a20aff1: Preparing
Post http://172.30.198.116:5000/v2/danbev/es/blobs/uploads/: no basic auth credentials
So, that failed. How do we set up the correct credentials? The issue is that I've already logged in to docker.io. I need to login to 172.30.198.116:5000 I think. To get a token for the login I did:
$ oc login -u test -p test
$ $ oc whoami -t
Now, copy the token from the response above and use it in the following command:
$ docker login -u test -p token -e [email protected] 172.30.198.116:5000
WARNING: login credentials saved in /home/vagrant/.docker/config.json
Login Succeeded
But we are not done yet. Simply trying to push the image again will fail with the following error message:
The push refers to a repository [172.30.198.116:5000/mbaas-logging/danbev-es] (len: 1)
59d06a20aff1: Preparing
unauthorized: access to the requested resource is not authorized
We have to give the user test
the correct permissions.
$ oc login --username=system:admin
$ oadm policy add-role-to-user system:registry test
$ oadm policy add-role-to-user admin test -n mbaas-logging
$ oadm policy add-role-to-user system:image-builder test
Now, lets try pushing again:
$ docker push 172.30.198.116:5000/mbaas-logging/danbev-es:latest
The push refers to a repository [172.30.198.116:5000/mbaas-logging/danbev-es] (len: 1)
59d06a20aff1: Pushed
e3dd683dc684: Pushed
26b2d6e283c9: Pushed
f33fed2c596b: Pushed
ec7f56a8b7ce: Pushed
deaac687339f: Pushed
19f9a5ae3587: Pushed
3454f42095bb: Pushed
f00d0f39e6db: Pushed
8581d1e530b3: Pushed
47a93cbdf944: Pushed
73dd0c4c7c79: Pushed
f2f20b4e1e6b: Pushed
60e65a8e4030: Image already exists
5764f0a31317: Image already exists
838c1c5c4f83: Pushed
47d44cb6f252: Image already exists
latest: digest: sha256:c8eb64da741e61e18dd39c01c3026d23bd25dd9b215fd9ab72db3106c8a45987 size: 44337
Success, that was simple ;)