2016-12-05 16 views
3

を必要と私はこのようなドッキングウィンドウコンテナをダウンロードして起動しようとしています:ドッキングウィンドウ:不正:認証

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

しかし、ダウンロードが途中で停止し、私はこの取得:

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

をだから私は見えましたここに: docker unauthorized: authentication required - upon push with successful login

私はこれを試してみました:

docker push mydockerhubusername/somerepo:latest 

しかし、私は取得しています:

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

それでは、どのように私はコンテナをダウンロードすることができます。

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

は私の~/.docker/config.jsonは、このようになりますか?

+0

を** docker **リポジトリにログインする必要はありません。リポジトリを 'docker pull reponame'で取得してください。ここで' reponame'はhttps://hub.docker.com/にリストされています。ダウンロードして実行したい画像の詳細をいくつか教えてください。 –

+0

あなたは 'docker push'と' docker pull'を混同しているようです。あなたが作成したドッカー画像を最初にDockerハブに置くと(そしてログインする必要があります)、最後にDockerハブからあなたのホスト – user2915097

答えて

1

コンテナはダウンロードしないでください。イメージをダウンロードしてから、そのイメージ上にdocker runを実行して、コンテナを開始します。それが起こるためには、イメージはどこかに存在しなければなりません - 公共の​​のようないくつかのDockerレジストリか、あなたのプライベートレジストリまたはローカルマシンのいずれかに存在しなければなりません。ローカルマシンに存在しない場合、docker runはデフォルトでDockerHubからdocker pullになります。ログインしている場合はプライベートレジストリから試みます。

イメージをローカルマシンからレジストリにプッシュする場合は、マシン上のそのレジストリにログインし、リポジトリを作成してイメージをビルドし、次にdocker pushイメージをそのリポジトリに保存する必要があります。他の場所からダウンロードしてコンテナを開始することができます。もちろん、イメージを構築するには、Dockerfile、またはあなたのプロジェクトにそれを自動的に構築するプラグインが必要です。

例:Javaのイメージがすでに公開されていると私は私のマシン上でそれを持っていないので、私はdocker run javaを行うとき、それはdocker pullofficial DockerHub repositoryからイメージを開始:公共のダウンロードのために

~ $: 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 
関連する問題