docker:未经授权:需要身份validation

我正在尝试下载并启动一个像这样的docker容器:

docker run -it -p 8000:8000 -p 8060:8060 -h sandbox somegithubrepo bash 

然而,下载停在中途,我得到这个:

 docker: unauthorized: authentication required. See 'docker run --help'. 

所以我看了这里: docker未经授权:身份validation要求 – 推成功login后

我试过这个:

 docker push mydockerhubusername/somerepo:latest 

但是我得到:

 The push refers to a repository [docker.io/mydockerhubusername/somerepo] An image does not exist locally with the tag: mydockerhubusername/somerepo 

~/.docker/config.json看起来像这样:

 { "auths": { "https://index.docker.io/v1/": { "auth": "someKey" } } } 

那么我怎样才能下载容器?

你不要下载一个容器。 您下载一个图像,然后在该图像上执行一个docker run ,然后启动一个容器。 为了实现这一点,图像必须存在某处 – 在公共DockerHub或您的私人registry或您的本地机器的一些Dockerregistry中。 如果它不存在于你的本地机器上,docker run会默认尝试docker从DockerHub中取出它,或者如果你login到DockerHub,你可以从私有的registry中取出它。

如果你想把图像从本地机器推送到registry,你必须login到你的机器上的registry,创build一个存储库,build立图像,然后docker push图像到该存储库,以便您可以下载它从别的地方开始一个容器。 当然,为了构build一个图像,你需要一个Dockerfile,或者在你的项目中为你自动构build一个插件。

例如:Java图像已经发布,我没有在我的机器上,所以当我做docker run java ,它开始docker pull从官方的DockerHub仓库 docker pull图像:

 ~ $: docker run java Unable to find image 'java:latest' locally latest: Pulling from library/java 386a066cd84a: Pull complete ... ... ... Status: Downloaded newer image for java:latest