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