2017-09-26 26 views
2

Dockerfile私はFROMのプライベートレジストリのイメージを実装しようとしています。私はdocker-compose build戻り、Docker version 1.12.6, build 78d1802docker-compose version 1.8.0, build unknownと何の問題もなく、このファイルをビルドしますが、Docker version 17.06.1-ce, build 874a737docker-compose version 1.16.1, build 6d1ac21を持っている別のマシンで:`docker pull`はプライベートgitlabレジストリから` denied:access forbidden`を返します

FROM my.private.gitlab.registry:port/image:tag 
http://my.private.gitlab.registry:port/v2/docker/image/manifests/tag: denied: access forbidden 

同じを返しdocker pull my.private.gitlab.registry:port/image:tag

my.private.registry:port/image:taghttp://my.private.registry:port/v2/docker/image/manifests/tagがキャッチされていることに注意してください。

+3

これが認証されたレジストリの場合、これを構築しているマシンで 'docker login 'を実行する必要があります。これは一度だけ行う必要があります。 –

+0

@ TarunLalwani、それは 'Unauthorized:authentication required'を返しました。多分、gitlabに対する私のアクセス許可に関連しているかもしれません。私は確認してお知らせします。 –

+0

@ TarunLalwani、あなたは正確な原因を指摘しました。回答として投稿してください、私は承認することができます。 –

答えて

5

これが認証されたレジストリの場合、これを構築するマシンでdocker login <regitsryurl>を実行する必要があります。

これは、ホストごとに1回だけ行う必要があります。ドッカーが安全でないレジストリを許可するように設定する必要があります - コマンドは、私はあなたのURLスキームがhttpプロトコルを使用して気づくファイル

$ cat ~/.docker/config.json 
{ 
    "auths": { 
     "https://index.docker.io/v1/": { 
      "auth": "......=" 
     } 
    } 
} 
0

で認証をキャッシュします。

(次のいずれかの場所に必要な)あなたのdaemon.jsonを作成または変更します。

のLinux:/etc/docker/

Windowsの場合:内容でC:\ProgramData\Docker\config\

{ 
    "insecure-registries" : [ "my.private.gitlab.registry:port" ] 
} 

が次に再起動しますドッカー(ターミナルセッションだけでなく)を再試行してください。

あなたがログインしたら:

docker login my.private.gitlab.registry:port 

tarun-lalwaniを1として「(Sなどの答え、これはその後、将来の使用のために、設定にdocker pull)認証を追加する必要があります」。