I created a docker repo which I wanted to pull for a local copy.
I want to create an image that can be used by anyone and everyone in the team will have a common work env.
I ran this command on my Ubuntu 14.04 :
docker pull xanthelabs/dev
The output is :
Using default tag: latest
Pulling repository docker.io/xanthelabs/dev
Tag latest not found in repository docker.io/xanthelabs/dev
I am new to docker and dont know what to do to remove this error. What should I be doing?
PS: I've been able to successfully pull images that are already available on the hub like ubuntu:14.04 and centos, so I know the installation is up and working.
To pull images first you need to push something to your repo. I checked https://hub.docker.com/r/xanthelabs/dev/ and it seems that you haven't pushed anything yet.
So first (in directory with your Dockerfile):
docker build --tag xanthelabs/dev .
docker push xanthelabs/dev
And then:
docker pull xanthelabs/dev
For doing pushes you need to be logged in (docker login).
Related
hi i am install masakari using kolla-ansible when it try to pull container it throw error `The repository not exist or request denied i check docker hub the image not present there , is there setting in kolla to download the docker image with other name which is present on docker hub.
Global.yml
#kolla_base_distro: "centos"
#kolla_install_type: "binary"
#openstack_release: "ussuri"
Based on your global.yml it should work when you run the following commands to download and rename your prefered docker-images:
docker pull odivlad/masakari:api
docker pull odivlad/masakari:engine
docker pull odivlad/masakari:rc8
docker tag odivlad/masakari:api kolla/centos-binary-masakari-api:ussuri
docker tag odivlad/masakari:engine kolla/centos-binary-masakari-engine:ussuri
docker tag odivlad/masakari:rc8 kolla/centos-binary-masakari-rc8:ussuri
After this the images should match the correct name and should be found by the kolla-ansible run.
I have never used masakari by myself und can not check this in my own kolla-ansible test setup. So it is only a theoretical solution for your problem.
I setup my own docker registry using this image: https://hub.docker.com/_/registry
The first thing I noticed was that the latest tag was not automatically being set. When pushing an image to dockerHub it gets assigned automatically the latest tag so you can always access the newest image with that tag.
That does not seem to be the default behaviour for a self-hosted docker registry. Is there any way to configure it so I get a latest-tag automatically?
Even though Docker Hub behaves in that way, pushing latest tag automatically is not the default behavior for a Docker registry.
Usually, the action of pushing latest in addition to the tag that you are pushing is a custom logic that is a part of CI process set up for you app.
This is just one of many ways to achieve this
docker build -t myregistry.com/myapp:VARIABLE_TAG -t myregistry.com/myapp:latest .
docker push myregistry.com/myapp:VARIABLE_TAG
docker push myregistry.com/myapp:latest
I ran this:
docker pull 91xxxxx371.dkr.ecr.us-west-2.amazonaws.com/main_api
and nothing new was pulled, but I knew there were new images on AWS/ECR.
So I removed the existing images:
docker rmi 91xxxxx371.dkr.ecr.us-west-2.amazonaws.com/main_api
and then pulled again and of course it says it retrieved new images, but that's probably just because I deleted the local tags/images or whatever.
Why didn't the first pull command get the latest? It defaults to the latest tag.
Update:
I have to correct my answer, #David Maze (comment) is right: I described the docker run behaviour.
From the Docker documentation:
When using tags, you can docker pull an image again to make sure you have the most up-to-date version of that image
So your command should work, I don't know why it's not working, sorry.
But nevertheless you can use as a workaround tags to enforce to pull the image with the specified tag.
docker run (not docker pull) search first in your local registry on your machine. If there is the image with the tag latest, the search is satisfied and terminated. If the image with the given tag is not available in your local registry, then docker will search in a remote registry like docker hub or your own.
So the tag latest should be used with care. If you have an Image with the tag latest in your local registry then you have to delete it first, so docker get nothing and search in remote registry.
I have created a image locally in my windows system. The image copys the hello world application war file to liberty server. I am able to build and run the image locally in my system. But, I am unable to push the application to bluemix.
This is my docker file :
FROM registry.ng.bluemix.net/ibmliberty:latest
COPY HelloWorldWeb.war /opt/ibm/wlp/usr/servers/defaultServer/dropins/
ENV LICENSE accept
EXPOSE 9080 22
These commands are successful :
$ docker build -t libertytest1 c:/Microservices
$ docker tag libertytest1 registry.ng.bluemix.net/my_ibm/libertytest1
$ docker run --rm -i -t libertytest1
This command fails with below error :
$ docker push registry.ng.bluemix.net/my_ibm/libertytest1
The push refers to a repository [registry.ng.bluemix.net/my_ibm/libertytest1]
9f24cf425f1e: Pushed
5f70bf18a086: Pushed
f5115b19b62d: Pushed
d255f44e3bce: Pushed
3eb8d309e7a4: Pushed
b9ca157916fa: Pushed
9d3eae113364: Pushed
8077bafd5c40: Pushed
86a4f2b11dd6: Pushed
58de70953d07: Pushed
3a497f2a043d: Pushed
612baa4f0341: Pushed
63f90ec2c29b: Pushed
54f3ce62fc73: Pushed
7c7cf479c321: Pushed
manifest invalid: manifest invalid
When I login to bluemix and check my containers, I could not see this container. Please suggest how to resolve this error.
Note : I added a manifest.yml in my war file, but still the same error.
Mostly like you are running with old version of Docker.
manifest invalid: manifest invalid
Please upgrade docker client (at least to v1.8.1) and try push again, you should be fine to push the image.
In Docker 1.10, they've made a change to the way image manifests are generated.
The version of the Docker Registry that the IBM Containers Registry runs doesn't support images built with the new format, so you get the error you see when you try to push.
We're working to get pushes working again using the latest version of Docker, but for now you'll need to do one of the following:
Use the IBM Containers build service: cf ic build -t registry.ng.bluemix.net/my_ibm/libertytest1 c:/Microservices
Downgrade to Docker 1.9 on your machine and run your commands locally as above.
EDIT: the issue has now been resolved. You can push images using Docker 1.10 now.
For anyone using Artifactory I ran into this same issue.
manifest invalid: manifest invalid
The fix was to update permissions for the Artifactory user account so it had both write, overwrite, and delete permissions.
I have the same problem with last versions of docker and cf ic
I solved it building the image directly on Bluemix using cf ic build command
cf ic build -t [Bluemix registry URL] [path to your docker file]
So im trying to pull a fresh repository from docker, wich it seems to be pretty easy but i just can't.
Im seeing this (check image)
but im getting "repository not found", this is what im running.
bash-3.2$ docker pull ethaan/test
Pulling repository ethaan/test
Repository not found
bash-3.2$
Also im trying with Kitematic, but its kinda the same, here are som ss from kitmatic.
First the "my repos view"
Now when i click on "create", i got this error.
UPDATE
Updating Start Repository email image
Update view from docker hub enterprise
If this is a private repository (it doesn't exist from my view), you will need to login first.
https://docs.docker.com/reference/commandline/login/
Usage: docker login [OPTIONS] [SERVER]
Register or log in to a Docker registry server, if no server is
specified "https://index.docker.io/v1/" is the default.
-e, --email="" Email
-p, --password="" Password
-u, --username="" Username
You are not able to pull it because you just don't have any tags in ethaan/test. That is, the repository is empty. Once you push a tag, you will be able to pull it. Just to test, try the following:
docker pull busybox
docker tag busybox ethaan/test:test
docker push ethaan/test:test
Then you will be able to pull it as:
docker pull ethaan/test:test